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