叢集cluster
rhel6.5+Cman+RGManager+iSCSI+GFS2+cLVM 可擴充的叢集共享存儲
實體機192.168.2.4為管理端。selinux為disabled,火牆關閉,時間同步
兩個虛拟機192.168.2.46和192.168.2.175為用戶端,用戶端可以有很多,用戶端配置相同,火牆關掉,selinux為enforcing,時間要同步
管理端:
lftp i:/pub/gls> get dvd.repo //下載下傳yum源,把之前的清空
yum install -y luci
/etc/init.d/luci start //啟動時這裡會有一個連結,等虛拟機配置完畢後打開連結即可,這個網頁不需要連外網的
加入兩台虛拟機的解析,直接ping兩台虛拟機的域名ping通即可
用戶端:
lftp i:/pub/gls> get dvd.repo //下載下傳yum源,把之前的清空
yum install -y ricci //ricci安裝後并不成成目錄,加入叢集後才會生成目錄
passwd ricci //設定密碼為westos,必須設定密碼,這是系統版本要求
/etc/init.d/ricci start
chkconfig ricci on
浏覽器:https://desktop.example.com:8084 //超戶身份登入,點選Nodes,create叢集,叢集名字不要相同
建立叢集的時候,寫域名的時候一定要有解析,寫ip則不需要,選擇download packages,因為它會自動安裝并更新軟體包,選擇use..則不會更新軟體包;全部勾選。耗費時間比較長
如果建立後節點未能成功開啟的解決辦法:把叢集相關服務全部開啟,并設為開機自啟動
/etc/cluster/cluster.conf //叢集配置檔案,如果有一個叢集節點開啟成功,把這個檔案scp給未成功的節點,并把下面的服務啟動
/etc//etc/init.d/cman start //叢集核心通信服務,開啟
/etc/init.d/rgmanager start
/etc/init.d/modclusterd start //監控服務
/etc/init.d/clvmd start
/etc/init.d/ricci start //監聽端口為1409
chkconfig cman on
chkconfig rgmanager on
chkconfig modclusterd on
chkconfig clvmd on
chkconfig ricci on
(2)安裝fence,fence一定在真機上配置
管理端:
rpm -qa |grep fence //一定要有下列三個服務,沒有就安裝
fence-virtd-libvirt-0.2.3-15.el6.x86_64
fence-virtd-0.2.3-15.el6.x86_64
fence-virtd-multicast-0.2.3-15.el6.x86_64 //虛拟化背景,多波方式
fence_virtd -c //生成fence_xvm.key配置,預設存儲路徑為/etc/cluster/fence_xvm.key
Interface [none]: br0 //選擇br0作為通信接口
Backend module [checkpoint]: libvirt
/etc/init.d/fence_virtd start
mkdir /etc/cluster/ //這個目錄沒有就建立,應該是之前不存在,需要手動建立的目錄
cd /etc/cluster/
dd if=/dev/urandom of=fence_xvm.key bs=128 count=1 //導出/dev/urandom生成128b為1個位元組的fence_xvm.key檔案
scp fence_xvm.key 192.168.2.46:/etc/cluster/ //把fence_xvm.key檔案同步到兩個節點中
scp fence_xvm.key 192.168.2.175:/etc/cluster/
netstat -anulp| grep 1229 //udp協定服務,端口為1229
可以在desktop46虛拟機cd /etc/cluster/--ll檢視是否scp成功,應該是成功的
浏覽器192.168.2.4:8084或者dektop.example.com:8084
點選Fence Device,再add
選擇Fence Virt(Multid Mode)
name 為vmfence
打開虛拟機點選左上方的感歎号
複制vm1的uuid為d13407df-67d9-2887-73b1-5ce308cb20ca
再點選浏覽器nodes 點選頁面下方的Add Fence Method
Method Name為vmfence1
在浏覽器找到Add Fence Instance 選擇vmfence...這一項
Domain欄把剛上面複制的uuid粘貼下去,ok,這裡本來是填虛拟機的名字如vm1,但是名字可能相同,而且找起來也慢,uuid是唯一的,更快,而且不會錯,當然uuid和之前的域名要對應起來,不能弄錯
再在該頁面點選server75.example.com,點選頁面下方的Add Fence Mode
Method Name為vmfence2
再把vm2的uuid為3e19bbb6-d3ef-f81f-013a-176e863ef1ec複制下來
點選Add Fence Instance 選擇vmfence...這一項
Domain欄把剛上面複制的uuid粘貼下去,ok
在浏覽器上找到Failover Domains然後點選add,name為webfail,Prioritized和Restricted勾選上,desktop46.example.com和server75.example.com都勾選上,并且在後面權限分别寫個1,2
在所有的機器上yum install -y httpd 不需要你開啟或關閉,由叢集控制
cd /etc/cluster/-->ls->cat cluster.conf
在浏覽器上找到Resources,點選add,選擇IP Address,選擇一個沒有被占用的ip如192.168.2.134(ping不通就說明沒占用)填寫在IP Address欄,Netmask Bits (optional)寫24,其他不變
再在Resources添加選擇script,Name填寫httpd,Full Path to Script File填寫/etc/init.d/httpd
在浏覽器找到Service Groups點選add,分别填寫www,都勾選,選擇webfail //如果www服務啟動失敗把資料總管重新開機/etc/init.d/rgmanager restart
點選該頁下面的add resource選擇剛剛上面該寫的ip192.168.2.134再點選add resource選擇httpd服務,ok
在虛拟機終端執行clustat
在兩台虛拟機上
都執行cd /var/www/html/-->echo `hostname` < index.html
打開浏覽器輸入192.168.2.175或者46都會看到顯示各自主機名的網頁
然後你随機把某一台虛拟機的http服務關掉,再在另一台虛拟機上watch cluster,你會發現有變化,而且在浏覽器上輸入192.168.2.134會顯示服務關掉的網頁,在沒有顯示前注意看虛拟機上監控的變化,需要一點時間變過來。
(3)磁盤資訊本地存儲,檔案同步,先挂載,再解除安裝,才能在另一服務端檢視到
管理端192.168.2.4
用戶端:192.168.2.218和192.168.2.185
管理端:
yum install -y scsi*
lvcreate -L 3G -n iscsi vol0
lvs //檢視iscsi磁盤資訊
vim /etc/tgt/targets.conf //加入後重新開機不會失效
<target iqn.2014-07.com.example:server.target1>
backing-store /dev/vol0/iscsi
initiator-address 192.168.2.185
initiator-address 192.168.2.218
</target>
/etc/init.d/tgtd start
tgt-admin -s
//Backing store path: /dev/vol0/iscsi 後面顯示路徑即表示磁盤分享成功
用戶端:
yum install -y iscsi*
iscsiadm -m discovery -t st -p 192.168.2.4 //建立目标,192.168.2.4是管理端ip位址
iscsiadm -m node -l //使生效
cd /var/lib/iscsi/nodes-->ls //可以檢視到生效後的資訊,iscsiadm -m node -o delete删除指令
fdisk -l //生效之後檢視到多了一個磁盤/dev/sda,大小為3g
在某一個用戶端如server85執行:
fdisk -cu /dev/sda
n p 1 enter enter p w
在另一個用戶端server218上:
fdisk -l //剛剛在另一個用戶端建立的磁盤已經共享,可以再這台主機上檢視到相同的磁盤資訊/dev/sda1
cat /proc/partitions //檢視不到/dev/sda1,說明并沒有真正同步
在server85上:
/etc/init.d/clvmd status //clvmd是lvm支援叢集服務,要把服務開啟,一般是開啟的
在server218上:
partprobe //使磁盤真正同步
cat /proc/partitions //檢視核心分區表,看到/dev/sda1,這時磁盤已經真正同步
lvmconf --enable-cluster
vim /etc/lvm/lvm.conf //搜尋cluster檢視到預設locking_type = 3,如果不是改為3
/etc/init.d/clvmd restart
pvs //掃描
在server85上:
vgcreate -cy clustervg /dev/sda1
在server218上:
pvs-->vgs //掃描出現/dev/sda2和clustervg
在server85上:
vgdisplay clustervg //Clustered為yes,支援叢集
lvcreate -L 1G -n clusterlv clustervg
mkfs.ext4 /dev/clustervg/clusterlv //格式化
mount /dev/clustervg/clusterlv /var/www/html/
ll -dZ /var/www/html/
clusvcadm -s www //停掉www服務
df //檢視已經挂載成功
getenforce //如果為強制,則執行下一步修改權限,若為disabled,則不需要修改權限
restorecon -Rv /var/www/html/-->ll -dZ /var/www/html/
cd /var/www/html/
vim index.html //内容為server85.example.com
umount /var/www/html/ //在//var/www/html/目錄下是無法解除安裝的,要到其他目錄下解除安裝
在server218上:
mount /dev/clustervg/clusterlv /var/www/html/
ll -dZ /var/www/html/ //檢視權限是否修改成功
umount /var/www/html/ -->df
浏覽器:http://desktop.example.com:8084
點選Resouces,add選擇Filesystem,name為webdata,type為ext4,/var/www/html/, /dev/clustervg/clusterlv,1 2 4 5勾選,遞交ok
點選Service Groups,先把httpd服務remove,然後找到下方的Add Resource,選擇webdata,,再把httpd服務添加上,就是說把檔案系統挂載之後再不apache服務加上去,遞交ok
在server85上:
clusvcadm -e www //啟動www叢集服務,也可以在浏覽器Service Groups上選擇啟動服務。clustat可以看到相關狀态資訊
// clusvcadm -r www -m server218.example.com 服務遷移指令,在server85上遷移至server218上
(4)叢集網絡存儲同步,在一服務端任何操作,在另一服務端均能立即同步
在server85上:
clusvcadm -s www
//把叢集服務停掉,然後在浏覽器上把webdata服務remove删掉,隻留下ip和scripts腳本
//把webdata删掉在于這是個ext4的檔案系統,而網絡存儲是gfs2系統
mkfs.gfs2 -p lock_dlm -t oula:mygfs2 -j 3 /dev/clustervg/clusterlv //-j日志 一般是節點加1份日志,-p 叢集鎖 -t叢集名字
mount /dev/clustervg/clusterlv /var/www/html/
cd /var/www/html/
vim index.html //内容寫server85.example.com
restorecon -Rv /var/www/html/ //selinux為enforcing時才需要修改權限,為disabled時不需要修改權限
ll -dZ /var/www/html/
//修改權限後是drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/ ,
未修改前權限是drwxr-xr-x. root root system_u:object_r:file_t:s0 /var/www/html/
在server218上:
mount /dev/clustervg/clusterlv /var/www/html/
ll -dZ /var/www/html/ //直接挂載,檢視權限和修改後權限後一緻說明之前的操作都是正确的
cd /var/www/html/
//在該目錄下建立或删除檔案,在另一個服務端可以即時同步相應操作,比如建立檔案,編輯檔案内容等
umount /var/www/html/ //在兩個服務端上執行這一步把。/var/www/html/解除安裝掉,在其他目錄下解除安裝,在/var/www/html/目錄解除安裝不了
blkid //把uuid序列号複制下來
vim /etc/fstab //寫入如下資訊
UUID=b77c412e-3327-6fea-0550-16784a9d7987 /var/www/html gfs2 _netdev 0 0
//因為是網絡存儲檔案,是以defaults改為_netdev
mount -a //挂載測試:再把/dev/mapper/clustervg-clusterlv挂載到/var/www/html上,df檢視挂載情況
ll -dZ /var/www/html/ //權限應為drwxr-xr-x. root root system_u:object_r:httpd_sys_content_t:s0 /var/www/html/
clusvcadm -e www //開啟www服務組
clustat //檢視狀态
clusvcadm -r www -m server85.example.com
//更改主節點為server85.example.com,在server85上watch clustat,檢視www服務狀态變化,ok
(5)gfs2拉伸
在server85上:
gfs2_tool sb /dev/clustervg/clusterlv all
//sb_locktable = oula:mygfs2
gfs2_tool journals /dev/clustervg/clusterlv //檢視日志檔案,如果這步執行不了,再挂載一下mount /dev/clustervg/clusterlv /var/www/html/
lvextend -L +1G /dev/clustervg/clusterlv //lvextend -l +255 /。。拉伸機關為M時用l,為G時用L
gfs2_grow /dev/clustervg/clusterlv //擴充
lvs-->df -h //檢視擴充後的大小,df -h以1024M為1G,df -H以1000M為1G,算法不同
gfs2_jadd -j 2 /dev/clustervg/clusterlv //新增日志2個,之前是3個,現在加2個就是5個
如果叢集壞了,那我們挂載的/var/www/html/目錄下所有資料都将丢失,但是原來目錄/dev/clustervg/clusterlv/下的資料還是在的,這時候要把它取出來
lftp i:/pub> get gfs2.img //網絡存儲格式的磁盤空間,裡面有很多資料
gfs2_tool sb gfs2.img all //sb_locktable = hacluster:mygfs,與之前的不一樣
mount -t gfs2 -o loop,lockproto=lock_nolock gfs2.img /mnt/ //可以把/mnt/下内容scp到其他伺服器上,把磁盤中資料取出來存儲到其他安全伺服器中,這樣資料就恢複出來了
umount /mnt/ //在其他目錄下解除安裝
(6)
再添加一台虛拟機192.168.2.128,server28.example.com,火牆和selinux刷掉,時間同步,四台主機解析做好
在server218上:scp /etc/yum.repos.d/dvd.repo 192.168.2.128:/etc/yum.repos.d/
在server128上:
yum源配置目錄下隻有dvd.repo一個配置檔案,yum clean all
yum install -y ricci
passwd ricci //設定密碼為westos
chkconfig ricci on
/etc/init.d/ricci start
浏覽器:找到Node,選擇add,寫入server28.example.com,選擇Download..,全部勾選,ok
找到Service Groups,勾選www服務disabled
dektop管理端上:
cd /etc/cluster/
scp fence_xvm.key 192.168.2.128:/etc/cluster/
浏覽器:
找到Node,點選server28.example.com,點選下方的Add Fence Method,Method name為fence3,頁面跳轉後點選Add Fence Instance,選擇vmfence..,domain填寫虛拟即複制的uuid号3707b03c-f4e8-1f19-ec28-9f38aaba445c,遞交,ok;
再點選頁面的Failover Domains,點選webfail,勾選server28.example.com,然後權限為2,update..ok;
server28上:
yum install -y httpd
yum install -y iscsi*
在管理端dekstop上:
tgtadm --lld iscsi --op bind --mode target --tid 1 -I 192.168.2.128 //将192.168.2.128臨時加入iscsi,重新開機後将失效
tgt-admin -s //檢視節點192.168.2.128是否添加成功
vim /etc/tgt/targets.conf //永久生效
initiator-address 192.168.2.128
/etc/init.d/tgtd restart
server28上:
iscsiadm -m discovery -t st -p 192.168.2.4
iscsiadm -m node -l
lvmconf --enable-cluster //使lvm支援叢集
/etc/init.d/clvmd restart
lvs-->vgs //clustervg和clusterlv都添加成功
vim /etc/fstab
UUID=b77c412e-3327-6fea-0550-16784a9d7987 /var/www/html gfs2 _netdev 0 0
clusvcadm -e www
//啟動www服務,也可以在浏覽器上把www服務start ,如果某個服務端fence不同步,把該服務端fence_xvm -H node2重新開機即可
clustat //檢視叢集狀态
轉載于:https://my.oschina.net/u/1986074/blog/296940