集羣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  //查看集羣狀態









 html

相關文章
相關標籤/搜索