(1)系統環境準備
此次使用的環境,使用為virtual machine來實現
host : CentOS-6.0
kernel: 2.6.32-71.el6.x86_64 #1 SMP
MemTotal: 7891424 kB(/proc/meminfo)
CPU(Quad core) : Intel(R) Core(TM) i3-2130 CPU @ 3.40GHz
HDD: 1TB*2 (LVM ==> 2T)
guest: CentOS-6.0
kernel: 2.6.32-71.el6.x86_64 #1 SMP
MemTotal: 1G
CPU *1
HDD: 100GB
KFS的環境使用virtual machine的NAT環境,也把dhcp打開
guest總共佈建4台,1台metaserver, 3台chunkserver
這4台/etc/hosts設定如下
192.168.65.1 mserver #yum/ftp server
192.168.65.150 t01nn #metaserver
192.168.65.151 t01d1 #chunkserver1
192.168.65.152 t01d2 #chunkserver2
192.168.65.153 t01d3 #chunkserver3
(2)系統安裝
使用kickstart檔來進行初期的部署(4台guest都照此安裝),所有rpm在這個階段都安裝完成,簡單描述幾個重點
:
selinux --disabled
firewall --disabled
:
bootloader --location=mbr --driveorder=sda --append="rhgb quiet"
:
#在host,我們佈建了vsftpd以及httpd,
#預設在/var/ftp/pub,/var/www/html(soft link to /var/ftp/pub)
install
url --url=http://192.168.65.1/pub
:
clearpart --drives=sda --all --initlabel
part / --asprimary --fstype="ext4" --ondisk=sda --grow --size=1024
part /boot --asprimary --fstype="ext4" --ondisk=sda --size=200
part swap --fstype="swap" --ondisk=sda --recommended
:
#這裡將要安裝的套件一併在下面一一指定安裝
%packages
@core
@server-policy
ftp
telnet
ntpdate
gcc
gcc-c++
make
cmake
log4cpp
boost
boost-devel
expat
openssl-devel
java-1.6.0-openjdk
java-1.6.0-openjdk-devel
uuid
uuid-devel
libuuid
libuuid-devel
ant
python
python-devel
fuse-devel
fuse-libs
%end
%post
#接下來的設定,可依個人喜好,把系統預設安裝的設定項,在這裡一併完成
#筆者在這裡接連把下列的設定一併完成
# 1. /etc/sysconfig/network-scripts/ifcfg-eth0 設定網卡
# 2. /etc/sysconfig/network 設定hostname
# /etc/hosts
# /etc/resolv.conf
# 3. 安裝xfsprogs相關套件,由於預設CentOS 6.0的安裝光碟沒有,於是下載後
# 置入yum/ftp server上,在%post時補充安裝
# xfsprogs-3.1.1-7.el6.x86_64.rpm
# xfsprogs-devel-3.1.1-7.el6.x86_64.rpm
# 4. kfs-0.5.tar.gz的安裝 --> /usr/local/kfs-0.5
# 詳細安裝可見[KFS](KosmosFS) 安裝方法一
# 5. /usr/local/kfs-0.5/scripts/machines.cfg
# 6. /usr/local/kfs-0.5/conf/machines.txt
# 7. /usr/local/kfs-0.5/conf/ChunkServer.prp
# 8. Fuse掛載KFS
# 詳細安裝可見KFS mount by Fuse
# 9. 設定方便的scripts, 可將kfs setup, start, stop及mount等 指令設置成scripts
# 10. 更新套件,如果在這個步驟啟動KFS,fuse mount KFS時,
# 可能會發生coredump。有可能的原因Centos 6.0是預設rpm套件太舊。
# 筆者經過以下套件更新後,KFS mount即恢復正常(沒有一一試過是哪個太舊)
# 如果不想輸入這麼長的一串更新套件,可以直接連上Centos 預設的yum server
# 進行yum update即可
# rpm -Uvh ~/pkgs/boost-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-date-time-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-devel-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-filesystem-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-graph-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-iostreams-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-program-options-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-python-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-regex-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-serialization-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-signals-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-system-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-test-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-thread-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/boost-wave-1.41.0-11.el6_1.2.x86_64.rpm \
# ~/pkgs/cpp-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/expat-2.0.1-11.el6_2.x86_64.rpm \
# ~/pkgs/fuse-devel-2.8.3-4.el6.x86_64.rpm \
# ~/pkgs/fuse-libs-2.8.3-4.el6.x86_64.rpm \
# ~/pkgs/gcc-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/gcc-c++-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/libblkid-2.17.2-12.7.el6.x86_64.rpm \
# ~/pkgs/libgcc-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/libgomp-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/libstdc++-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/libstdc++-devel-4.4.6-4.el6.x86_64.rpm \
# ~/pkgs/libuuid-2.17.2-12.7.el6.x86_64.rpm \
# ~/pkgs/libuuid-devel-2.17.2-12.7.el6.x86_64.rpm \
# ~/pkgs/make-3.81-20.el6.x86_64.rpm \
# ~/pkgs/ntpdate-4.2.4p8-2.el6.centos.x86_64.rpm \
# ~/pkgs/openssl-1.0.0-20.el6_2.5.x86_64.rpm \
# ~/pkgs/openssl-devel-1.0.0-20.el6_2.5.x86_64.rpm \
# ~/pkgs/python-2.6.6-29.el6_2.2.x86_64.rpm \
# ~/pkgs/python-devel-2.6.6-29.el6_2.2.x86_64.rpm \
# ~/pkgs/python-libs-2.6.6-29.el6_2.2.x86_64.rpm \
# ~/pkgs/telnet-0.17-47.el6.x86_64.rpm \
# ~/pkgs/util-linux-ng-2.17.2-12.7.el6.x86_64.rpm \
# ~/pkgs/java-1.6.0-openjdk-1.6.0.0-1.48.1.11.3.el6_2.x86_64.rpm \
# ~/pkgs/java-1.6.0-openjdk-devel-1.6.0.0-1.48.1.11.3.el6_2.x86_64.rpm
(3)系統啟動
系統啟動需要再執行以下作業
1)ssh password-less
利用這篇ssh password-less session config的做法 ,將t01nn, t01d1, t01d2, t01d3這幾台都設定為彼此不需要密碼登入
2)在t01d1, t01d2, t01d3都執行以下指令
rsync -av /usr/local/kfs-0.5/ t01d1:/usr/local/kfs-0.5/
rsync -av /usr/local/kfs-0.5/ t01d2:/usr/local/kfs-0.5/
rsync -av /usr/local/kfs-0.5/ t01d3:/usr/local/kfs-0.5/
3)setup your KFS
cd /usr/local/kfs-0.5/scripts
python kfssetup.py -f machines.cfg -m ../conf/machines.txt -b ../build -w ../webui
4) start up your KFS
python /usr/local/kfs-0.5/scripts/kfslaunch.py -f /usr/local/kfs-0.5/scripts/machines.cfg -m /usr/local/kfs-0.5/conf/machines.txt -s
5) mount your KFS
/usr/local/kfs-0.5/build/bin/kfs_fuse /mnt/kfs -f -o allow_other
後記:
目前的安裝方法,己經縮短安裝時間, 約20分鐘即可在Virtual Machine將這4台KFS架設完成,但為求日後便利:
1)可以製作便利的ssh password-less scripts, 日後在主機異動時,可以快速設定
2) 可以製作便利的server-cnf-update scripts, 便利日後主機異動時,更新設定
machines.txt machines.cfg ChunkServer.prp
rsync...
3)自製kfs rpm,讓安裝更快速便利(目前kfs安裝約要5分鐘左右)且更適合大量部署
沒有留言:
張貼留言