Wednesday, May 12, 2010

otrs installation note

require rpm
gd, gd-devel, kernel-headers, perl-Net-DNS

Download otrs from http://otrs.org/download/


[root@otrs opt]# tar xjvf otrs-2.4.7.tar.bz2 -C /opt
[root@otrs opt]# mv otrs-2.4.7 otrs
[root@otrs opt]# useradd -r -d /opt/otrs/ -c 'OTRS user' otrs
[root@otrs opt]# usermod -G apache otrs
[root@otrs opt]# cd /opt/otrs/Kernel
[root@otrs Kernel]# cp Config.pm.dist Config.pm
[root@otrs Kernel]# cd Config
[root@otrs Config]# cp GenericAgent.pm.dist GenericAgent.pm

[root@otrs bin]# cd /opt/otrs/bin

check otrs folder permission
[root@otrs bin]# ./SetPermissions.pl /opt/otrs --web-group=apache --otrs-group=apache

check perl modules for otrs
[root@otrs bin]# ./otrs.checkModules

建議 Encode::HanExtra 最後裝
裝 SOAP-Lite 先裝 RPC::XML


設定 LDAP 整合前有一個特別的程序,否則將會整和不成功
1. 先用預設帳號 root@local / root 登入
2. 改 Config.pm
3. 另外用一台電腦 使用欲用來管理的 ldap 帳號登入
4. 用原本的 root@local 去設定 ldap 帳號的管理權限

Friday, May 07, 2010

heartbeat , drbd 切換節點前注意事項

heartbeat , drbd 在切換節點前注意事項
因為如果不能成功讓 secondary 接手就喪失 heartbeat 的意義
環境: node01 為 primary, node02 為 secondary

若 linux kernel 升級 下次用新的 kernel 開機時 drbd module 會失效
原因是 drbd 是 kernel 編譯的模組 若有和開機相對應的模組

所以 linux kernel 升級 -> 重新開機 -> apt-get remove drbd8-source drbd8-utils –> apt-get install drbd8-source drbd8-utils

2. 關掉 primary 時 請在 secondary 接手的機器做以下確認動作 ,

a. 檢查 /proc/drbd , 如果如下未 sync 完畢 請等待 sync 完畢 (通常是關機一段時間, 有大量的資料待 sync)

drbd driver loaded OK; device status:
version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by nobody@node02, 2010-05-07 10:45:39
m:res cs ro ds p mounted fstype
… sync'ed: 12.2% (4352/4952)M
0:r0 SyncTarget Secondary/Primary Inconsistent/UpToDate C
root@node02:~# more /root/drbd.status
version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by nobody@node02, 2010-04-29 01:22:52
0: cs:SyncSource ro:Primary/Secondary ds:UpToDate/Inconsistent C r—-
ns:9358320 nr:8306688 dw:19144016 dr:20373293 al:36175 bm:35703 lo:0 pe:298 ua:0 ap:0 ep:1 wo:b oos:162604
[===========>........] sync'ed: 64.9% (162604/454208)K
finish: 0:01:41 speed: 1,436 (9,112) K/sec

b. 確認 heartbeat, drbd service

heartbeat
/etc/init.d/heartbeat status
heartbeat OK [pid 1590 et al] is running on node02 [node02]…

drbd
root@node02:~# /etc/init.d/drbd status
drbd driver loaded OK; device status:
version: 8.3.3 (api:88/proto:86-91)
GIT-hash: 49bfeeaf3690ad0b9afd5376feda9e9eb34a30f3 build by nobody@node2, 2010-05-07 10:45:39
m:res cs ro ds p mounted fstype
0:r0 Connected Secondary/Primary UpToDate/UpToDate C

Saturday, March 13, 2010

Monitoring an ADSL link using a simple script

ADSL 常常被衝爆 屢屢遭 User 的 call
來吧,以後如果斷線就自己重開吧!

Monitoring an ADSL link using a simple script
http://logicsquad.net/freebsd/pingmonitor-how-to.html

Thursday, March 04, 2010

iSCSI 驗證項目

Q1: 掛載在 iSCSI Target 的 Disk 是否可以移轉到其他 Target Server ?

A1: 可。經過試驗後,可以移轉。不用擔心 Server 掛掉, iSCSI Disk 認不到。

Q2: 是否可以同時多個 iSCSI Initiators 存取同一個 iSCSI Disk

A2: 不可,如果同時 Server A, Server B 掛載同一個 iSCSI Disk ,則兩邊只會看到自己所寫得部份,要達到這個功能需要使用 GFS 等具有 Share disk 功能的 File System。

Wednesday, March 03, 2010

Squid - 透過 proxy 無法 SVN Commit

使用者透過 Proxy 無法做 SVN Commit

出現下面訊息

Commit
Commit failed (details follow):
Server sent unexpected return value (400 Bad Request) in response to MKACTIVITY
request for '/svn/mstar/!svn/act/6c6b0d3e-111a-5f4e-bd9a-f24d71d4de02'

解法:

很簡單, 只是 Squid 看不懂 request method

vi /etc/squid/squid.conf

extension_methods REPORT MERGE MKACTIVITY CHECKOUT PROPFIND

Thursday, February 25, 2010

CentOS4 iscsi initiators

iSCSI initiators 在 CentOS 4 與 CentOS5 使用上有點不一樣

1. 安裝

# yum install iscsi-initiator-utils

2. 設定

# vi /etc/iscsi.conf

DiscoveryAddress=ISCSI_TARGET_HOST_OR_IP
OutgoingUserName=ISCSI_USER_NAME
OutgoingPassword=ISCSI_PASSWORD
LoginTimeout=15

3. 啟用服務

# chkconfig iscsi on
# /etc/init.d/iscsi start

4. 確認

# fdisk -l
# tail -f /var/log/messages
# find /sys/devices/platform/host* -name "block*"

5. 格式化

# fdisk /dev/sdc
# mkfs.ext4 /dev/sdc1

ref

http://www.cyberciti.biz/tips/howto-centos-rhel4-iscsi-initiators.html

Sunday, February 21, 2010

apt-mirror : "apt-mirror is already running, exiting at /usr/bin/apt-mirror line 187"

如果執行 apt-mirror 出現這個錯誤

"apt-mirror is already running, exiting at /usr/bin/apt-mirror line 187"

通常是 apt-mirror 不正常結束所造成

請先檢查你的 base_path 在哪

base_path = /home/apt-mirror

則 /home/apt-mirror/var/apt-mirror.lock 刪掉
再重新執行 apt-mirror 即可

Tuesday, February 16, 2010

[CentOS] 初探 OpenIMPI 研究

OpenIMPI - Intelligent Platform Management Interface

OpenIMPI 他是一個硬體平台的管理介面,目的是讓不同廠商的管理軟體能夠透過一致的介面,管理不同的韌體和硬體平台,有效降低伺服器系統的設備總擁有成本。目前大部的 Server 或是 KVM 都會提供 OpenIMPI。
OenIMPI 是要是透過 BMC (baseboard management controller),他是獨立於主機的一顆特別的 IC , 他可以在主機當機時,仍然可以對系統做一些處置,如開關機。有些情況的當機純粹是軟體所造成的,只要重開即可,有了 OpenIMPI 就不用跑機房一趟,所以對 MIS 是非常好的工具。

除此之外,我們也可以透過 OpenIMPI 來做 Cluster 的 Fence Device, 這也是我要開始瞭解 OpenIMPI 的目的。


更詳盡的說明,請參閱 "嵌入式IPMI管理器可增強伺服器的可靠性"
http://www.eettaiwan.com/ART_8800335004_480402_NT_22631dba.HTM

[安裝]
OpenIPMI 有三個重要的組件 OpenIPMI, OpenIPMI-libs, OpenIPMI-tools
其中 OpenIPMI, OpenIPMI-libs 是用來提供服務, OpenIPMI-tools 則是提供查詢工具。

yum install OpenIPMI OpenIPMI-libs OpenIPMI-tools
chkconfig impi on
service impi start

[使用]
直接打 ipmitool 就可以顯示所有功能


ex. 顯示 sensor 所有數值
ipmitool sensor

ACPI STATE | 0x01 | ok
CPU0 Pres | 0x02 | ok
CPU1 Pres | 0x02 | ok
CPU0 TEMP | 48 degrees C | ok
CPU1 TEMP | 46 degrees C | ok
SYS TEMP | 22 degrees C | ok
CPU FAN1 | 6000 RPM | ok
CPU FAN2 | 6000 RPM | ok
CPU FAN3 | 6200 RPM | ok
CPU FAN4 | 6000 RPM | ok
CPU FAN5 | 6200 RPM | ok
CPU FAN6 | 6000 RPM | ok
CPU FAN7 | 6200 RPM | ok
CPU FAN8 | 6000 RPM | ok
CPU FAN9 | 6000 RPM | ok
CPU FAN10 | 6200 RPM | ok
SYS FAN1 | 6000 RPM | ok
SYS FAN2 | 5800 RPM | ok
CPU0 VCOREA | 1.39 Volts | ok
CPU1 VCOREA | 1.39 Volts | ok
VCC12V | 12.22 Volts | ok
VBAT | 1.84 Volts | cr
VCC3V3 | 3.27 Volts | ok
VCC5V | 5.07 Volts | ok
VCC3V3 DUAL | 3.30 Volts | ok
Watchdog | Not Readable | ns
POST ERROR | Not Readable | ns
MEMORY ECC | Not Readable | ns
PCI ERROR | Not Readable | ns


ex. 取 CPU1 溫度
ipmitool sensor get "CPU1 TEMP"

Locating sensor record...
Sensor ID : CPU1 TEMP (0x24)
Entity ID : 3.2
Sensor Type (Analog) : Temperature
Sensor Reading : 46 (+/- 0) degrees C
Status : ok
Lower Non-Recoverable : na
Lower Critical : 10.000
Lower Non-Critical : na
Upper Non-Critical : 70.000
Upper Critical : 90.000
Upper Non-Recoverable : na
Assertion Events :
Assertions Enabled : lcr- unc+
Deassertions Enabled : lcr- unc+


其他更進一步的指令,須回到公司替 Server 設定 IPMI 的 IP 才有辦法測試給大家。
等過完年吧~

Sunday, February 14, 2010

Linux Cluster for NFS 安裝及設定 - 隨筆記錄中

趁休假這段空檔,來做一下用 iSCSI 做 Linux Cluster 的 LAB
我會有兩台機器做為 Cluster Node, 再另一台機器提供 iSCSI 的 Shared Disk
環境如下

[環境]
下面是我在休假前準備的環境
1. Storage Ubuntu 9.10 192.168.1.20 作為Shared Disk使用
2. Node1 CentOS5.4 192.168.1.21 Cluster的節點一
3. Node2 CentOS5.4 192.168.1.22 Cluster的節點二
4. Service IP 192.168.1.25 Cluster的 Service IP

其中 Storage 未來可以改用 FreeNAS 來取代,由於機器不夠先暫時用我的電腦撐一下


[基礎知識]

首先,如果要能讓 Disk 具有 iSCSI 的功能 要安裝 iscsi-initiator-utils 套件
至於,如何掛載 Share Disk 則需要 iscsitarget 套件。


[Storage]
我們採用 iscsitarget 來做 Share Disk
由於 CentOS4 不提供 iscsitarget 套件,再者下載原始程式也是無法 Compile 成功,
所以如果要使用 CentOS ,建議用 CentOS5 所提供現成的套件。
a. 安裝
iscsitarget
b. 設定
vi /etc/ietd.conf

我新增下面三行
Target iqn.2010-02.com.testabc:storage.disk2.sys1.xyz
Lun 0 Path=/home/test.img,Type=fileio
Alias Test

其中 path 可以為 實體的 raw disk , 如 /dev/sdb1, 或是 image file
ex. 用 dd 產生 1G 的檔案
dd if=/dev/zero of=/home/test.img count=1000000 size=1024


vi /etc/default/iscsitarget
將 ISCSITARGET_ENABLE 設定 true
ex. ISCSITARGET_ENABLE=true
c. 啟動
設定好後
/etc/init.d/iscsitarget start

[Node1, Node2]
安裝 iscsi-initiator-utils 套件
yum install iscsi-initiator-utils

測試掛載 iscsi 磁碟
iscsiadm --mode discovery --type sendtargets --portal 192.168.1.20


測試登出 iscsi 磁碟
iscsiadm -m node -L all



列出所有 target
iscsiadm -m node

若無法登出,多半是 Share Disk 停止分享,
可以到下面的目錄將無法登出的目錄砍掉即可
/var/lib/iscsi/nodes

將設定寫入
vi /etc/iscsi/initiatorname.iscsi
DiscoveryAddress=172.16.8.109

chkconfig iscsi on
service chkconfig start

下次重新開機就會自動找到
注意:每個 iscsi export 出來的 mount 只能由一個 Node 掛載,不能同時兩個 Nodes 掛載。




參考網站
Open-iSCSI Project
http://www.open-iscsi.org

iSCSI Enterprise Target
http://iscsitarget.sourceforge.net

Saturday, February 13, 2010

[CentOS4] iSCSI 安裝與測試

[iSCSI 安裝]
下載地點 http://iscsitarget.sourceforge.net

目前最新版為 iscsitarget-1.4.19.tar.gz
iscsitarget 編譯時需要 kernel header,
透過 /lib/modules/[kernel 版本]/build 連結的地方找 kernel source
並進行 autopatch, RELEASE_NOTES 裡面會註明支援的 kennel 版本

我用 kernel 版本是 2.6.28.10

開始安裝吧~
tar zxvf iscsitarget-1.4.19.tar.gz
cd iscsitarget-1.4.19
make && make install

Thursday, February 11, 2010

[task] 2010 過年計畫

過年計畫

1. colinux 熟悉與操作

2. nfs cluster 使用

Wednesday, February 10, 2010

NoMachine NX 安裝報告

NoMachine NX 是一套遠端連線軟體,比 VNC 還要快
他目前有提供授權版本、免費的版本,以及 GPL 發行的 freenx
freenx 目前我裝起來有先問題 所以改進行 NoMachine 部份

NX 如同 VNC 一樣 , 在被連線的那端要裝 Server , 遙控端裝 Client
下載網址 http://www.nomachine.com/download.php

所以請在 Download 網址選擇 NX Free Edition
依照你的作業系統 安裝 Server, Node , Client 三個元件
至於 Client 只要安裝 Client 的元件即可


安裝後要注意一些地方

1. Free 版本只能兩個人使用

ref: /usr/NX/etc/server.lic
這個問題其實不大,而且可以克服
因為大部分的電腦都是個人使用,很少超過三個人

如果第三個人要用 只要到 vi /usr/NX/etc/users.db
把不要的人砍掉即可


2. VNC 的設定
如果透過 NX / FreeNX 連線到主機的 VNC
通常會有兩個問題 密碼找不到或是找不到 vnc server
請改 /usr/NX/etc/node.cfg 的 CommandStartRFB 參數

ex.
CommandStartRFB = "vncviewer -FullScreen -passwd /root/.vnc/passwd"

Saturday, February 06, 2010

Linux kenel 編譯註記

參考一些資料預計將下面參數加入

CONFIG_CONNECTOR=y
與使用者/核心層級的資訊溝通有關

這個參數和 DRBD 有關,如需使用則需要編入

另外如果使用 ATI 顯示卡 也需要編入
ref:http://wdicc.com/use-uvesafb/

ref: http://linux.vbird.org/linux_basic/0540kernel.php

Monday, February 01, 2010

[task] Build X (on going)

mesa 7.7 可以編譯成功,代表如果要編更大包 整個 X windows 系統,應該是有機會成功的。
之前編了好幾次都失敗 >_<

目的就是要解決 Intel On Board 顯示晶片在 CentOS 4 無法使用 1920x1080 解析度(21 吋) 的問題。

先整理一下文件
Intel Linux Graphics Driver Installation Guide
http://intellinuxgraphics.org/install.html

BuildingX
http://wiki.x.org/wiki/Development/BuildingX?action=show&redirect=Development%2Fgit

Building the DRI with X.org and Mesa
http://dri.freedesktop.org/wiki/Building

fresdesktop source
http://cgit.freedesktop.org/

http://xorg.freedesktop.org/archive/individual/driver/

[task] Mesa 7.7 compile (on going)

Mesa 7.7 編譯過程是我遇過非常繁雜的。

目前在 Ubuntu 可以編譯成功,但在 CentOS 還在努力當中。

目前先講 Ubuntu 部分

[Ubuntu]
0. 先假定我們要安裝到 /opt/mesa , 下載的 source 全部放在 /usr/local/src/build_mesa
記得安裝 apt-get install build-essential libx11-dev gcc4
由於我採用 gcc4 編譯 安裝到 /opt/mesa

請每次編譯時 ./configure prefix=/opt/mesa CC=/usr/bin/gcc4
以下文章以 ./configure 簡稱

1. 先到 Mesa 網站 http://www.mesa3d.org/relnotes-7.7.html
下載 MesaLib-7.7.tar.bz2 MesaDemos-7.7.tar.bz2 MesaGLUT-7.7.tar.bz2
解開全部後,先是一次 ./configure 她會告訴你缺 libdrm 。

沒關係 這裡給一個網站 http://paldo.org 這是一套 Linux Distrubtion
我們可以找到所有我們需要的 source 而且這個網站也會提供套件的相依性
所以當我們卡在某個套件無法編譯時,可以看看是否有缺哪些套件沒有先進行編譯

下載完 libdrm 她又會告訴你缺 pkg-config
回去再編 libdrm 她又會告訴你缺 libpthread-stubs-0.1
OK, 這會是一個超級迷宮,在編譯過程中會不斷出現,只能認命了

這裡提示一下 幾個重要的地方
a. pkg-config
編譯後 setenv PKG_CONFIG_PATH /opt/mesa/lib/pkgconfig
我們編譯過程 py 檔幾乎都乎都會放在這個目錄,除了 xtrans 以外
其他編譯的程式若需要參考 .py 我們就設定這個變數讓他到這目錄找

b. xtrans
編譯 xtrans 之後 將 xtrans.pc 放到 $PKG_CONFIG_PATH
cp /opt/mesa/share/pkgconfig/xtrans.pc $PKG_CONFIG_PATH

c. 如果忘記編到那忘記了
很簡單 回到第一層 mesa-7.7 重新 ./configure 就會告訴你缺什麼了

[CentOS]

仍待測試... 尚未成功 整理中
下面為編譯順序 卡在 libxcb ,

pkg-config
setenv PKG_CONFIG_PATH /users/acty.chen/work/GPU2/lib/pkgconfig


libptheard-stubs
pixman
cario


dri2proto

xproto
xextproto

xtrans
cp ../../GPU2/share/pkgconfig/xtrans.pc ../../GPU2/lib/pkgconfig/xtrans.pc


Python

setenv PATH ~/work/GPU2/bin:$PATH
xcbp-proto
libXau
libxcb

Friday, January 29, 2010

Ubuntu 影音安裝 list

整理 Ubuntu 下要使用影音的軟體清單

apt-get install gstreamer0.10-plugins-ugly gstreamer0.10-ffmpeg

Monday, January 11, 2010

linux top 相關文章

目前工作要釐清的問題

http://www.linuxforums.org/articles/using-top-more-efficiently_89.html


關於 snmp 對 cpu usage 解釋
http://opennms.org/wiki/Net-snmp_5.3_CPU_collections

Wednesday, January 06, 2010

Squid 除錯 - storeSwapOutFileClosed: dirno 1, swapfile 000XXXX, errflag=FFFFFFFF

在 Squid cache.log 看到這個 log 乍看之下以為是 檔案壞掉

2009/12/31 12:44:35| storeSwapOutFileClosed: dirno 1, swapfile 0006DAFB, errflag=FFFFFFFF


經追查結果應該是檔案目錄結構壞掉,無法寫入所致。

把 cache 目錄重新 format 一次再重新建 cache 目錄即可。

Sunday, December 27, 2009

cfengine3 install note - on processing

1. 取得並安裝
wget http://www.cfengine.org/tarballs/cfengine-3.0.3.tar.gz
tar zxvf cfengine-3.0.3.tar.gz
cd cfengine-3.0.3
./configure; make install

2. copy 基本設定檔
mkdir -p /var/cfengine/masterfiles
cp /usr/local/share/doc/cfengine/*.cf /var/cfengine/masterfiles/

3. 第一次執行
cf-key
cd /var/cfengine/masterfiles
cf-agent --bootstrap
這裡會出現兩個錯誤 把下面兩個檔案 copy 到 /var/cfengine/masterfiles
cp /usr/local/share/doc/cfengine/inputs/failsafe.cf .
cp /usr/local/share/doc/cfengine/inputs/update.cf .
再執行一次 cf-agent --bootstrap

Monday, November 30, 2009

Squid 3.1 與 Ubuntu 9.10 - Compile Issue

若用 Ubuntu 9.10 由於 Kernel 已經用到 2.6.31

在 compile 要 squid-3.1.0.15 才不會有問題

用過 squid-3.1.0.8 , squid-3.1.0.13 都不行



0. 先安裝 compiler 相關工具 build-essential
我有用 ldap 所以也要安裝
apt-get install build-essential libssl-dev libldap2-dev


1. tar zxvf squid-3.1.0.15.tar.gz
cd squid-3.1.0.15

vi build.sh
./configure --prefix=/home/squid \
--mandir=/usr/local/man \
--enable-snmp \
--enable-htcp \
--enable-gnuregex \
--enable-dlmalloc \
--enable-referer-log \
--enable-async-io=160 \
--enable-useragent-log \
--enable-cache-digists \
--enable-cpu-profiling \
--enable-kill-parent-hack \
--enable-removal-policies \
--enable-xmalloc-statistics \
--enable-default-err-language=Traditional_Chinese \
--enable-basic-auth-helpers="LDAP" \
--enable-external-acl-helpers="ldap_group" \
--enable-storeio=diskd,ufs \
--with-filedescriptors=4096 \
--with-maxfd=16384 \
--enable-ssl


sh build.sh
make && make install