天天看點

叢集cluster

                         叢集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

繼續閱讀