在開始前,小弟主要遇到的問題就是samba PDC(BDC),因為有兩台LDAP server,採用mirror的方式互相備份,但是兩台rootdn和rootpw不一樣時,samba只會使用smb.conf裡的『ldap admin dn = 』這個參數以及設定在secrets.tdb裡的密碼去try另一台LDAP server,導致如果ldap1當機,會連不上ldap2,這個問題小弟還沒有時間去深入研究,所以....
暫時就先把ldap1、ldap2兩台的rootdn和rootpw設定成相同。這篇筆記是參考Weithenn大大的『24小時不打烊的雲端服務:專家教你用 CentOS 架設萬年不掛的伺服器』這本書,所以許多的設定主要也是從書中來的。
以下是小弟的架構,採用HA+DRBD的方式,不會因某台file server掛掉而導致使用者(linux、windows)無法存取自己的家目錄。

OS : CentOS6.3 (64位元)
eth0 : IP是由DHCP產生 (小弟有自行架設DHCP+DNS server)
eth1 : IP採用手動方式設定
DRBD是用硬碟的區塊(block)來進行同步的動作,並不是某個檔或某個資料夾,所以小弟把smb1、smb2的『home』單獨切一個分割區出來,並做成LVM,名稱為 /dev/VolGroup/lv_home (兩台都相同)。注意事項(smb1、smb2相同) :1. heartbeat對於叢集主機的FQDN(Fully Qualified Doamin Name)要求非常嚴格,所以DNS務必要設定正確,並確保雙方主機都可使用FQDN去ping到對方。 (192.168.1.0/24 這個網段)
2. 『/dev/VolGroup/lv_home』不要去自動掛載它,NFS、Samba等服務也不要手動開啟和開機時啟動,所有的動作都會由DRBD與HA來負責。
3. SELinux(3.7.19-155)對heartbeat這個服務目前似乎有些問題存在,所以小弟暫時先設定成permissive。
4. 加入至LDAP client中
套件 :DRBD : drbd83-utils、kmod-drbd83 (
需安裝ELRepo套件庫)
HA : heartbeat、heartbeat-devel、heartbeat-libs (
需安裝EPEL套件庫)
drbd與heartbeat的設定,在叢集主機中幾乎都是一樣的,要改的東西很少,所以小弟就以smb1來當範例,smb2只說明不一樣的地方。
DRBD (drbd83-utils-8.3.13-1、kmod-drbd83-8.3.13-2)DRDB的主設定檔為/etc/drbd.conf;為了方便管理,會將設定檔分成多個部分,並且都保存至/etc/drbd.d目錄中,主設定檔僅使用『include』將這些設定檔整合起來。
=====================drbd.conf內容=====================
# You can find an example in /usr/share/doc/drbd.../drbd.conf.example
include "drbd.d/global_common.conf"; #整體環境設定
include "drbd.d/*.res"; #資源環境設定
====================================================
smb1主機設定 :[root@smb1 ~]# vim /etc/drbd.d/global_common.conf
global {
minor-count 64;
usage-count yes;
}
common {
protocol C;
handlers {
pri-on-incon-degr "/usr/lib/drbd/notify-pri-on-incon-degr.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
pri-lost-after-sb "/usr/lib/drbd/notify-pri-lost-after-sb.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
local-io-error "/usr/lib/drbd/notify-io-error.sh; /usr/lib/drbd/notify-emergency-shutdown.sh; echo o > /proc/sysrq-trigger ; halt -f";
fence-peer "/usr/lib
64/heartbeat/drbd-peer-outdater -t 5"; #OS是64位元的話才會多一個"64"
pri-lost "/usr/lib/drbd/notify-pri-lost.sh; /usr/lib/drbd/notify-emergency-reboot.sh; echo b > /proc/sysrq-trigger ; reboot -f";
split-brain "/usr/lib/drbd/notify-split-brain.sh root";
out-of-sync "/usr/lib/drbd/notify-out-of-sync.sh root";
}
startup {
wfc-timeout 60
degr-wfc-timeout 120;
outdated-wfc-timeout 2;
}
disk {
on-io-error detach;
fencing resource-only;
}
net {
after-sb-0pri disconnect;
after-sb-1pri disconnect;
after-sb-2pri disconnect;
#這三段主要是設定split-brain的自動恢復機制,暫時先設定"disconnect"
}
syncer {
rate 10M; #資料最大同步速率,單位是Mbyte。
}
}
一個DRBD的設備(如:/dev/drbd0),就叫做一個資源(resource),一個資源裡包含了兩台以上的主機資訊
[root@smb1 ~]# vim /etc/drbd.d/home.res
resource
home { #"home"就是DRBD的資源名稱
on smb1 { #要與『#uname -n』所顯示的相同
device /dev/drbd0; #DRBD的設備
disk /dev/VolGroup/lv_home; #"/dev/drbd0"指向實際的partition "/dev/VolGroup/lv_home"
address 192.168.100.1:7788; #同步用的IP和port
meta-disk internal;
}
on smb2 {
device /dev/drbd0;
disk /dev/VolGroup/lv_home;
address 192.168.100.2:7788;
meta-disk internal;
}
}
copy這兩份設定檔到smb2
[root@smb1 ~]# scp /etc/drbd.d/* smb2:/etc/drbd.d/
建立DRBD資源(
smb2也是相同做法)
在開始建立時首先要塞點東西到『/dev/VolGroup/lv_home』裡面,否則 :
Device size would be truncated, which
would corrupt data and result in
'access beyond end of device' errors.
You need to either
* use external meta data (recommended)
* shrink that filesystem first
* zero out the device (destroy the filesystem)
Operation refused.
可能會出現類似的錯誤訊息。
[root@smb1 ~]# dd if=/dev/zero of=/dev/VolGroup/lv_home bs=1M count=10
10+0 records in
10+0 records out
10485760 bytes (10 MB) copied, 0.00715784 s, 1.5 GB/s
建立"home"資源[root@smb1 ~]# drbdadm create-md home
Writing meta data...
initializing activity log
NOT initialized bitmap
New drbd meta data block successfully created.
success
兩台主機都設定好後,接下來就可以開啟drbd的服務了。(service drbd start)
觀察DRBD的狀態[root@smb1 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by dag@Build64R6, 2012-09-04 12:06:10
m:res cs ro ds p mounted fstype
0:home Connected Secondary/Secondary Inconsistent/Inconsistent C
ds欄位狀態顯示『Inconsistent』,代表兩台主機的『/dev/drbd0』尚未開始同步。進行同步,並把smb1提升為Primary Node(smb1設定即可)[root@smb1 ~]# drbdadm -- --overwrite-data-of-peer primary home
[root@smb1 ~]# service drbd status
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by dag@Build64R6, 2012-09-04 12:06:10
m:res cs ro ds p mounted fstype
0:home SyncSource Primary/Secondary UpToDate/Inconsistent C
... sync'ed: 8.0% (4604/4996)M
上面顯示『/dev/drbd0』正在進行同步中。
當同步完成後,smb1主機上所看到的DRBD狀態應為 : ro欄位顯示Primary/Secondary,ds欄位顯示UpToDate/UpToDate。格式化『/dev/drbd0』(smb1設定即可)[root@smb1 ~]# mkfs.ext4 /dev/drbd0
測試[root@smb1 ~]# mount /dev/drbd0 /home
[root@smb1 ~]# df -h
/dev/drbd0 4.9G 138M 4.5G 3% /home
[root@smb1 ~]# service drbd status
drbd driver loaded OK; device status:
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by dag@Build64R6, 2012-09-04 12:06:10
m:res cs ro ds p mounted fstype
0:home Connected Primary/Secondary UpToDate/UpToDate C /home ext4
可看到掛載點及檔案系統格式的資訊。到此DRBD的建置就算完成了。設定HA之前,先把smb1、smb2加入LDAP client,並且把NFS、Samba、Samba PDC(smb1)、Samba BDC(smb2)等服務設定好。注意事項 : 由於現在的『/dev/drbd0』已經是處於同步的狀態,參考第四篇筆記把PDC設定好後,在home目錄下所建立的東西,如logon.bat、profiles等,在BDC上就不需要在去建立了,只要把samba設定好即可。而為了避免產生錯誤,先把smb2提升為primary,並掛載/home。
先把smb1降級(已設定好PDC等相關資料)[root@smb1 ~]# umount /home
[root@smb1 ~]# drbdadm secondary home
升級smb2[root@smb2 ~]# drbdadm primary home
[root@smb2 ~]# mount /dev/drbd0 /home
以下先來談談之前筆記一直沒寫到的Samba BDC(Backup Domain Controller) :
在smb2上先把samba、smbldap-tools安裝好,然後只需修改幾個地方,其餘的設定都與小弟第四篇的筆記相同。
[root@smb2 ~]# vim /etc/samba/smb.conf
domain master =
No #修改成no
先啟動samba[root@ smb2 ~]# /etc/init.d/nmb start ; /etc/init.d/smb start
加入LDAP管理員的密碼至samba[root@ smb2 ~]# smbpasswd -W
設定smbldap-tools script configuration[root@ smb2 ~]# perl /usr/share/doc/smbldap-tools-*/configure.pl
. SID for domain LDAP: SID of the domain (can be obtained with 'net getlocalsid home')
SID for domain LDAP [S-1-5-21-79182496-1355799292-2301990952] >
S-1-5-21-2085468683-186526287-1002239668 #這裡要修改成smb1的SID,其餘設定同第四篇筆記重開samba service,並測試[root@ smb2 ~]# /etc/init.d/nmb restart ; /etc/init.d/smb restart
[root@smb2 ~]# testparm
Load smb config files from /etc/samba/smb.conf
rlimit_max: increasing rlimit_max (1024) to minimum Windows limit (16384)
Processing section "[home]"
Processing section "[netlogon]"
Loaded services file OK.
Server role:
ROLE_DOMAIN_BDCPress enter to see a dump of your service definitions
[root@ smb2 ~]# pdbedit -Lv
測試完畢後,關閉samba、卸載home目錄,把DRBD降級成secondary;準備開始設置HA時,兩台主機的DRBD狀態都是 :
m:res cs ro ds p mounted fstype
0:home Connected Secondary/Secondary UpToDate/UpToDate C
Heartbeat(heartbeat-3.0.4-1)複製設定檔至 /etc/ha.d 目錄下[root@smb1 ~]# cp /usr/share/doc/heartbeat-3.0.4/ha.cf /etc/ha.d/
[root@smb1 ~]# cp /usr/share/doc/heartbeat-3.0.4/authkeys /etc/ha.d/
[root@smb1 ~]# cp /usr/share/doc/heartbeat-3.0.4/haresources /etc/ha.d/
一樣,只要先在smb1主機上去修改設定,然後再copy到smb2上就可以了。
smb1主機設定 :Heartbeat通訊設定檔[root@smb1 ~]# vim /etc/ha.d/ha.cf
debugfile /var/log/ha-debug
logfile /var/log/ha-log
logfacility local0
keepalive 2 #每2秒會去偵測對方是否存活(心跳間隔)
deadtime 15 #如果smb2主機在15秒內沒有收到smb1的心跳信號,就會開始接管資源
warntime 5 #當備用節點(smb2)在5秒內沒有收到主節點(smb1)的心跳,就會在LOG中寫入一個警告訊息,但還不會切換服務
initdead 60 #第一次啟動heartbeat或重新開機時,超過60秒仍未完成雙方的連線,則判定服務啟動失敗
udpport 694
ucast eth0 192.168.1.5
ucast eth1 192.168.100.2
#smb2的IP (心跳線)
auto_failback off
#當smb2接管資源後,不允許smb1恢復正常運作時重新接管資源
node smb1
node smb2
#兩台主機的hostname,要和『uname -n』相同
ping 192.168.1.1
#當網路(網卡) 失效時測試連線狀態用的,這裡指向小弟的DNS+DHCP server
respawn hacluster /usr/lib64/heartbeat/ipfail
respawn hacluster /usr/lib64/heartbeat/dopd
#設定與heartbeat 一起啟動、關閉的程序
《ipfail與dopd (drbd outdate-peer daemon)算是heartbeat的小工具;ipfail是用來檢測和處理網路故障,配合ping 這個參數來檢測;dopd是規範當我們的DRBD資料不同步時不允許切換。》
apiauth dopd gid=haclient uid=hacluster
apiauth ipfail gid=haclient uid=hacluster
#設定dopd、ipfail啟動時所使用的gid與uid
Heartbear資源設定檔[root@smb1 ~]# vim /etc/ha.d/haresources
#在最後一行新增以下內容smb1 IPaddr::192.168.1.6/24/eth0 drbddisk::home Filesystem::/dev/drbd0::/home::ext4 rpcbind nfs nmb smb
設定內容可分成五個部份來看 :
『smb1』: 預設Primary node的FQDN
『IPaddr::192.168.1.6/24/eth0』: 虛擬叢集的IP,設定在eth0網卡上
『drbddisk::home』: DRBD的資源名稱
『Filesystem::/dev/drbd0::/home::ext4』: DRBD的裝置,掛載點,檔案系統格式
『rpcbind nfs nmb smb』: 要啟動的服務;啟動時是左到右,關閉是由右到左
Heartbear驗證設定檔這個檔案主要是用在叢集主機節點 (Cluster Node) 之間的驗證檔,主機都必須具備此一檔案才會被認為是身處在同一個叢集中。
[root@smb1 ~]# vim /etc/ha.d/authkeys
auth 2
2 sha1 HI!
authkeys的權限一定要600才可以[root@smb1 ~]# chmod 600 /etc/ha.d/authkeys
smb2主機設定 :把先前smb1做好的設定檔scp過來
[root@smb2 ~]# scp smb1:/etc/ha.d/ha.cf /etc/ha.d/
[root@smb2 ~]# scp smb1:/etc/ha.d/haresources /etc/ha.d/
[root@smb2 ~]# scp smb1:/etc/ha.d/authkeys /etc/ha.d/
修改Heartbeat通訊設定檔[root@smb2 ~]# vim /etc/ha.d/ha.cf
#找到以下兩行,並修改成smb1的I
ucast eth0 192.168.1.4
ucast eth1 192.168.100.1
確認authkeys的權限是否為600[root@smb2 ~]# ll /etc/ha.d/authkeys
-rw-------. 1 root root 693 2012-11-12 23:08 /etc/ha.d/authkeys
接下來就是要將heartbeat設定成開機啟動,但要注意必須先啟動DRBD才可啟動heartbeat,否則系統在啟動過程中會因為DRBD還沒啟動 ( /dev/drbd0 尚未啟動),進而造成heartbeat啟動失敗。
[root@smb1 ~]# chkconfig heartbeat on
[root@smb2 ~]# chkconfig heartbeat on
檢查DRBD及heartbeat啟動順序[root@smb1 ~]# ll /etc/rc.d/rc5.d/S7*
/etc/rc.d/rc5.d/S70drbd -> ../init.d/drbd
/etc/rc.d/rc5.d/S75heartbeat -> ../init.d/heartbeat
[root@smb2 ~]# ll /etc/rc.d/rc5.d/S7*
/etc/rc.d/rc5.d/S70drbd -> ../init.d/drbd
/etc/rc.d/rc5.d/S75heartbeat -> ../init.d/heartbeat
啟動heartbeat[root@smb1 ~]# service heartbeat start
Starting High-Availability services: INFO: Resource is stopped
Done.
[root@smb2 ~]# service heartbeat start
Starting High-Availability services: INFO: Resource is stopped
Done.
檢查smb1狀態[root@smb1 ~]# service drbd start
drbd driver loaded OK; device status:
version: 8.3.13 (api:88/proto:86-96)
GIT-hash: 83ca112086600faacab2f157bc5a9324f7bd7f77 build by dag@Build64R6, 2012-09-04 12:06:10
m:res cs ro ds p mounted fstype
0:home Connected Primary/Secondary UpToDate/UpToDate C /home ext4
[root@smb1 ~]# df -h
/dev/drbd0 4.9G 138M 4.5G 3% /home
[root@smb1 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:78:91:1d brd ff:ff:ff:ff:ff:ff
inet 192.168.1.4/24 brd 192.168.1.255 scope global eth0
inet 192.168.1.6/24 brd 192.168.1.255 scope global secondary eth0:03: eth1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
link/ether 08:00:27:f3:31:04 brd ff:ff:ff:ff:ff:ff
inet 192.168.100.1/24 brd 192.168.100.255 scope global eth1
[root@smb1 ~]# netstat -tunlp
#看是否有開啟nmbd (137、138) 及smbd (139) 的LISTEN port
由上面的資訊可看到heartbeat已經幫我們自動開啟先前設定的所有服務了。
至於要怎麼手動切換Active node 到smb2主機上?!
很簡單,只要把目前的Active node重新啟動heartbeat即可
[root@smb1 ~]# service heartbeat restart
接著再去smb2檢查看看,資訊應該與上面檢查smb1的狀態相同。
災難測試實作完成後當然要來測試一下囉!否則怎麼知道設定是否正確和所謂的『high availability』到底好不好用....
測試方向小弟採三種方式 :
1. smb1(Active node)的eth0網卡關閉,smb2是否會自動接管,smb1的eth0網卡恢複運作,smb2繼續接管並不會轉交回smb1
2. smb1、smb2的eth1網卡(192.168.100.0/24)關閉
3. smb2(目前的Active node)直接關閉電源,smb1是否會自動接管
1. 停用smb1的eth0網卡
[root@smb1 ~]# ifdown eth0
可開啟smb2的ha-log來觀察轉換的過程,由於資訊量很多小弟就不貼出來了,總之就是會發現smb1掛掉了(Link smb1:eth0 dead ),smb2告訴其他人我還活著(Telling other node that we have more visible ping nodes),接著smb2開始接手資源(acquire [all] resources from smb1)以及啟動服務,最後完成接管的動作(remote resource transition completed.)。
此時可至smb2上觀察eth0會多一個192.168.1.6的IP,DRBD的狀態應該也是Primary node等等...
重新啟動smb1的eth0網卡
[root@smb1 ~]# ifup eth0
可發現heartbeat應該不會有任何的動作才對,Active node還在smb2上。
2. smb1、smb2的eth1網卡(192.168.100.0/24)關閉
這種作法會有兩種不同的狀態,假設目前DRBD的Primary node是smb1,eth1網卡有問題斷線,則雙方的DRBD的狀態會是
[root@smb1 ~]# service drbd status
m:res cs ro ds p mounted fstype
0:home StandAlone Primary/Unknown UpToDate/Outdated r----- ext4
[root@smb2 ~]# service drbd status
m:res cs ro ds p mounted fstype
0:home WFConnection Secondary/Unknown Outdated/DUnknown C
[root@smb1 ~]# ifup eth1
重新連接『home』資源
[root@smb1 ~]# drbdadm connect home
如果是Secondary node → smb2的eth1網卡斷線,雙方的DRBD狀態為
[root@smb1 ~]# service drbd status
m:res cs ro ds p mounted fstype
0:home WFConnection Primary/Unknown UpToDate/Outdated C /home ext4
[root@smb2 ~]# service drbd status
m:res cs ro ds p mounted fstype
0:home StandAlone Secondary/Unknown Outdated/DUnknown r-----
[root@smb2 ~]# ifup eth1
重新連接『home』資源或重啟DRBD
[root@smb2 ~]# drbdadm connect home
or
[root@smb2 ~]# service drbd restart
3. 在smb1主機(Active node)上強制關閉電源,結果應與第1個測試相同,smb2會接管。
Split-Brain(裂腦)簡單來說,就是DRBD無法判斷各節點之間的主從關係。
split-brain實際上是指在某種情況下,造成drbd的兩個節點斷開了連接,都以primary的身份來運作。當drbd某個primary node連接對方節點準備發送資訊的時候如果發現對方也是primary的狀態,那麼會立刻自行斷開連接,並認定當下已經發生split-brain,這時候會在log中記錄『Split-Brain detected,droppingconnection!』,也就是主機偵測到split-brain的狀況已經發生,但內建機制已無法自動解決問題,為了保全資料因此拒絕所有連線。
當發生split-brain之後,如果查看連接狀態,其中至少會有一個是StandAlone狀態,另外一個可能也是StandAlone (如果是同時發現split brain狀態),也有可能是WFConnection的狀態。
[root@smb1 ~]# service drbd status
m:res cs ro ds p mounted fstype
0:home StandAlone Primary/Unknown UpToDate/Outdated r----- ext4
[root@smb2 ~]# service drbd status
m:res cs ro ds p mounted fstype
0:home StandAlone Secondary/Unknown UpToDate/Outdated r-----
smb1為DRBD的primary,而smb2為secondary,此時分別查看兩台主機的DRBD狀態會發現,cs欄位為『StandAlone』,表示雙方皆認為只剩下自己在維持資料同步的服務;ds欄位為『UpToDate/Outdated』,表示雙方皆認為自己的資料是最新的,並等待備用主機來跟自己同步資料;p欄位為『r-----』,表示目前沒有採用任何資料同步複製模式來進行資料同步的動作。
split-brain有兩種解決辦法:
手動處理假設想保留目前smb1上的資料,並且放棄smb2上的資料時....
首先要設定smb2的DRBD資源角色為secondary node
[root@smb2~]# drbdadm secondary home
放棄DRBD的資料
[root@smb2~]# drbdadm -- --discard-my-data connect home
接著設定smb1 :
重新連接DRBD資源
[root@smb1~]# drbdadm connect home
設定DRBD資源角色成為primary node
[root@smb1~]# drbdadm primary home
之後再度查看雙方的DRBD狀態,可以發現兩台主機已恢復正常了。
自動處理(這裡小弟還沒有測試完)
自動處理策略定義如下:
after-sb-0pri
當兩個節點的狀態都是secondary時,可以通過after-sb-0pri策略自動恢復。
1)disconnect
默認策略,沒有自動恢復,簡單的斷開連接。
2)discard-younger-primary
在split-brain發生前從主節點自動同步。
3)discard-older-primary
在split-brain發生時從變成primary的節點同步資料。
4)discard-least-changes
在split-brain發生時從資料區塊最多的節點同步資料。
5)discard-node-NODENAME
自動同步到指定的名稱節點。
after-sb-1pri
當兩個節點的狀態只有一個是primary時,可以通過after-sb-1pri策略自動恢復。
1)disconnect
默認策略,沒有自動恢復,簡單的斷開連接。
2)consensus
丟棄secondary或者簡單的斷開連接。
3)discard-secondary
丟棄secondary數據。
4)call-pri-lost-after-sb
按照after-sb-0pri的策略執行。
after-sb-2pri
當兩個節點的狀態都是primary時,可以通過after-sb-2pri策略自動恢復。
1)disconnect
默認策略,沒有自動恢復,簡單的斷開連接。
2)violently-as0p
按照after-sb-0pri的策略執行。
3)call-pri-lost-after-sb
按照after-sb-0pri的策略執行,並丟棄其他節點。
配置自動恢復
編輯『/etc/drbd.d/global_common.conf』,找到『net』部分,配置策略如下,所有節點完全一致。
after-sb-0pri discard-younger-primary;
after-sb-1pri discard-secondary;
after-sb-2pri call-pri-lost-after-sb;
資料來源:
http://blog.csdn.net/kntao/article/details/7790263LVM最早開始規劃partition時,已經把smb1、smb2的單獨切一個分割區出來,並做成LVM,名稱為 /dev/VolGroup/lv_home,也就是我們的DRBD資源裝置,現在就來玩玩如何線上增加drbd resource的容量。
目前的容量 (兩台主機相同) :[root@smb1~]# df -h
檔案系統 Size Used Avail Use% 掛載點
/dev/drbd0 4.9G 138M 4.5G 3% /home
[root@smb1~]# lvs
LV VG Attr LSize
lv_home VolGroup -wi-ao-- 4.88g
先增加1G的容量給LV (兩台主機都要執行) :[root@smb1~]# lvresize -L +1G /dev/VolGroup/lv_home
Extending logical volume lv_home to 5.88 GiB
Logical volume lv_home successfully resized
[root@smb2~]# lvresize -L +1G /dev/VolGroup/lv_home
Extending logical volume lv_home to 5.88 GiB
Logical volume lv_home successfully resized
重置drdb resource(只需在primary主機上執行)[root@smb1~]# drbdadm resize home
重置檔案系統容量 (只需在primary主機上執行)[root@smb1~]# resize2fs /dev/drbd0
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/drbd0 is mounted on /home; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/drbd0 to 1542087 (4k) blocks.
The filesystem on /dev/drbd0 is now 1542087 blocks long.
查看容量[root@smb1~]# df -h
檔案系統 Size Used Avail Use% 掛載點
/dev/drbd0 5.8G 138M 4.5G 3% /home
手動切換Active node,並觀察smb2[root@smb1~]# service heartbeat restart
[root@smb2~]# df -h
檔案系統 Size Used Avail Use% 掛載點
/dev/drbd0 5.8G 138M 4.5G 3% /home
以上就是小弟初學成的筆記,還望各位大大們賜教,謝謝!!!