天天看點

devicemapper的多路徑

devicemapper的多路徑 

1.功能:

可以将多個實體裝置合成為一個邏輯裝置,可以做普通的合并,或者實作類似raid0的條帶化,還可以用來屏蔽硬碟中的壞道扇區,還可做lvm快照來備份資料庫,或者通過零裝置檔案來模拟非常大的裝置,用于測試功能。

Device mapper 是lvm 和 multipating 的底層技術。 

2.安裝包: device-mapper

device-mapper-multipath 

3.工作原理: 通過mapping

table來建立邏輯裝置(實體裝置和邏輯裝置每個扇區之間的對應關系)。表内容包括: 邏輯裝置的起始扇區:通常是0 邏輯裝置的扇區數量

類型(linear線性,連續組合;striped條帶化;error屏蔽壞道;snapshot快照;zero零裝置) 

4.磁盤扇區的計算:

1扇區=512位元組b 1kb=1024b 扇區大小kb=扇區數*512/1024 比如10G的磁盤,扇區數為:

10000000kb=扇區數*512/1024=20000000個扇區 #blockdev --getsize /dev/sda6 檢視裝置扇區數量 #echo

“0 ‘blockdev --getsize /dev/sda6’ linear /dev/sda6 0” | dmsetup create mydevice

通過table建立邏輯裝置 0表示這個邏輯裝置從0扇區開始,有208782個扇區,linear表示連續的,/dev/sda6 0

表示從/dev/sda6的第0個扇區開始做邏輯裝置。當一個裝置用剩餘空間做邏輯裝置時候,扇區就不是從0開始了。

以下寫入開機腳本後重新開機才會生效 

5.linear類型裝置 特性:把多個實體分區的扇區連續起來組合成一個邏輯裝置。 0

20000 linear /dev/sda1 0 20000 60000 linear /dev/sdb1 0

注:邏輯裝置從0到扇區取自sda1從0扇區開始取20000扇區,邏輯裝置從20000扇區開始,從sdb1的0扇區開始取60000個扇區,該邏輯裝置80000個扇區。

實作指令#echo “0 20000 linear /dev/sda1 0\n20000 60000 linear /dev/sdb1 0” | dmsetup

create mydevice 

6.stripe條帶化:通過chunksize 輪流寫入磁盤 0 1024 striped 2

256 /dev/sda1 0 /dev/sdb1 0 注:邏輯裝置從0扇區開始到1024扇區,類型為striped ,2個裝置, chunksize

256kb 從/dev/sda1和/dev/sdb1 的0 扇區開始 各取512扇區(注意扇區數必須是chunksize的倍數) 指令實作#echo “0

1024 striped 2 256 /dev/sda1 0 /dev/sdb1 0” | dmsetup create

mydevice 

7.error:通過合成邏輯裝置去除錯誤扇區 0 80 linear /dev/sda1 0 80 100

error 181 200 linear /dev/sdb1 0 指令實作#echo “0 80 linear /dev/sda1 0\n80 100

error\n181 200 linear /dev/sdb1 0” | dmsetup create

8.snapshot邏輯卷快照 特性:建立快照後,出現3個裝置(原裝置,快照裝置,cow裝置)

如果資料沒有改變,讀取資料從原裝置讀取,寫入變化的資料存儲到cow區域中,快照裝置儲存原裝置的資料。 #echo ―0 1000 snapshot

/dev/sda1 /dev/vg0/realdev P 16 ‖ | dmsetup create

mydevice從0扇區到1000扇區為/dev/sda1建立快照,名字為realdev,P表示下次啟動仍然生效,16為chunksize 

9.zero零裝置

特性:類似/dev/zero,但是他是個塊裝置,不能寫東西,一般用來測試用,建立大的檔案系統進行測試。比如測試建立10T大小的裝置用ext3來格式化

#export HUGESIZE=$[100 * (2**40)/512] 100T的扇區數量 2**40為2的40次方 #echo "0 $HUGESIZE

zero" | dmsetup create zerodev 生成的檔案在/dev/mapper/zerodev ext3每個分區最大支援2TB

10.多路徑功能 特性:多路徑功能,用來提供線路備援,監控每條鍊路,當鍊路失敗時自動切換鍊路,而且自動恢複運作,防止單點故障。生成的裝置名 /dev/dm-X

類型:當兩路徑優先級相等:負載均衡 當兩路徑優先級不等: 備援

#multipath列出多路徑裝置,背景需要開啟multipathd服務,優先級大小為0-1024 實驗步驟:

存儲端配置雙網卡,配置/dev/sda6為iscsi裝置 伺服器端安裝device-mapper-multipath包,連接配接iscsi裝置 #vi

/etc/multipath.conf 注釋掉 blacklist { devnode "*" 不同廠商的配置是不一樣的 } 取消注釋 default{

udev_dir .. .. path_grouping_policy failover(根據失效域來判斷執行政策) } #chkconfig

multipathd on #service multipathd restart 之後生成的裝置位置在/dev/mpath/下,可制作檔案系統,挂載

#multipath –l 查詢裝置狀态 

11.FC存儲

存儲端建立raid裝置,raid建立與HBA卡WWN号的映射關系(連接配接哪個HBA卡則使用哪塊磁盤裝置)

WWN為HBA卡的授權名稱,用來區分一個或一組網絡連接配接,表示網絡上的一個連接配接

更多精彩内容請關注:http://bbs.superwu.cn

繼續閱讀