文、胡尚忠老師
接續LVM的進一步運用-細說邏輯卷宗 Logical Volume in Detail(上)
群組建立完畢,現在介紹進一步建立LV 的特殊模式。
在交錯式存取的LV設定中,一旦PV中的空間即將用完,管理員想要新增硬碟空間進入LV中時,必須一次增加一組PV,上圖的例子中是一組二路的LV,也就是一個LV由兩個PV構成一群組,並設定為交錯式存取的LV,在增加PV進入群組時,就必須一次增加兩個PV,才能維持交錯式LV有足夠的空間操作。
建立交錯式LV的指令:
參數-i決定了交錯存取的PV數量,此數量不可超過構成群組的PV總數量,可設定交錯存取的LV大小取決於可使用的PV大小,如果PV大小不同,則可執行交錯式LV的容量,會取決於最小的PV容量。比如說,一個2-WAY的交錯式LV,即是一個LV由兩個PV構成,若兩個PV中一個20G另一個是30G,則可以建立的交錯式存取LV的空間就被限制在40G之下。
當LVM的設定混合了預設的線性模式之後,某些PV的空間可能經被使用了,我們可以透過指定使用PV上的PE(Physical Extend)數來使用PV上未使用的空間:
|
上面這個指令就更有趣一些,-l參數指定LV的大小是1000個PE的大小,依照上面PE的列表,兩個PV分別各有1279個PE,假如這個VG群組中還有其他的LV存在,我們就可能要避開那些在PV中可能已經被使用的區塊,因此在指令後面的分割區名稱後加上所需使用的PE區塊數,DB/dev/sdb使用0到500塊PE,SDC/dev/sdc使用第500-1000塊PE。
B.映射式存取LV(Mirrored Logical Volume)
當資料寫入LV時,映射式LV維持一份或多份同樣的資料存在分別的PV中,以避免維持LV的硬碟有失效的情形,當群組中的某一個硬碟失效時,LV就由映射模式變成原始的線性模式(Linear Mode)維持存取,lvcreate 中的-m參數指定了在LVM群組中維持映射備份的數量,-m1就是建立另一份鏡射映像檔,-m2就是建立2份備份的意思。
建立映射式LV時請注意,-m 設為1時為兩份映射LV,此時需要至少3個足夠空間的PV才能正確操作。因為映射式LV需要另一個裝置來儲存mirror修改的紀錄,而這份紀錄必須在重開機後還能存在並被系統找到。
所以在這裡因為需要另外加入一個PV,一共3個PV。
問題是,只有兩個PV,卻又想要使用鏡射式LV來避險,犧牲一點效能,可不可以?
所以,先刪除之前的LV:
由群組中移除剛剛加入的PV:
現在群組中只有兩個PV,我們想要將mirror的log存在兩個PV上,而不是需要另一個PV專門來存log,所以在參數中加上 --alloc anywhere,意思就是將log存放在原始的兩個PV上其中任何一個都可以的意思。
C.快照卷宗/備份卷宗(Snapshot Volume)
LVM Snapshot能夠幫助管理員快速的建立LVM的備份而不需要中斷系統的服務。系統依舊上線服務,資料仍然不斷修改,在原始資料修改之後,快照功能會自動複製被改變的部份進入快照卷宗裏面備存,以便在未來可以將LV內容回復成原狀。管理員可以對快照卷宗進行fsck來判斷原始的LV是否需要進行檔案系統修復的工作。在軟體測試的階段,管理員也可以利用快照卷宗代替真實的邏輯卷宗進行軟體測試,而不需要真實的將硬碟的資料改變。
先建立一個一般線性的LV:
[root@station19 ~]# lvcreate -L 4G -n examlv testvg Logical volume "examlv" created |
建立檔案系統,掛載後測試檔案複製,然後再建立snapshot。
[root@station19 ~]# mke2fs -j -L "example" /dev/testvg/examlv mke2fs 1.39 (29-May-2006) Filesystem label=example OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 524288 inodes, 1048576 blocks 52428 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=1073741824 32 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736 ....... 以下略 |
用同樣的lvcreate指令建立snapshot,取名為"snap"大小為100M:由lvdisplay的列表中可以看到/dev/testvg/snap已經設為啟動。
[root@station19 ~]# lvcreate --size 100M --snapshot -n snap /dev/testvg/examlv Logical volume "snap" created [root@station19 ~]# lvdisplay --- Logical volume --- LV Name /dev/testvg/examlv VG Name testvg LV UUID QNKYwu-d1KP-uCv8-vOXI-nvEB-NW4j-oepmTI LV Write Access read/write LV snapshot status source of /dev/testvg/snap [active] LV Status available # open 0 LV Size 4.00 GB Current LE 1024 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3
--- Logical volume --- LV Name /dev/testvg/snap VG Name testvg LV UUID xcImdT-T9on-cz3P-evR1-4ki6-mlpY-BEzEi3 LV Write Access read/write LV snapshot status active destination for /dev/testvg/examlv LV Status available # open 0 LV Size 4.00 GB Current LE 1024 COW-table size 100.00 MB COW-table LE 25 Allocated to snapshot 0.01% Snapshot chunk size 4.00 KB Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:4
[root@station19 mnt]# lvs LV VG Attr LSize Origin Snap% Move Log Copy% Convert examlv testvg owi-ao 4.00G snap testvg Swi-I- 100.00M examlv 100.00 home vol0 -wi-ao 992.00M lv.vserver vol0 -wi-a- 5.00G root vol0 -wi-ao 8.00G
[root@station19 mnt]# mount /dev/testvg/snap snap/ [root@station19 mnt]# cd snap/ [root@station19 snap]# ls lost+found VBoxLinuxAdditions-amd64.run
|
snapshot就像是LV的替身一樣,其中的內容與examlv的內容完全一致。
繼續閱讀:聯成電腦技術前線:LVM的進 一步運用-細說邏輯卷宗 Logical Volume in Detail(下)
35期電子報
本期焦點:聯成「黏成一 團」粉絲團入選前百大粉絲團
http://lccnetvip.pixnet.net/blog/post/31826526
精彩人物:跟著王子麵的 貓去旅行~專訪王子麵老師
http://lccnetvip.pixnet.net/blog/post/31826104
軟體秘技:建築模型的快 速製作
http://lccnetvip.pixnet.net/blog/post/31825982
學員故事:從線上作業員 到動畫設計師,變身成功!
http://daphneli.pixnet.net/blog/post/25356242
留言列表