文、胡尚忠老師

接續LVM的進一步運用-細說邏輯卷宗 Logical Volume in Detail(上) 

群組建立完畢,現在介紹進一步建立LV 的特殊模式。

001.JPG

在交錯式存取的LV設定中,一旦PV中的空間即將用完,管理員想要新增硬碟空間進入LV中時,必須一次增加一組PV,上圖的例子中是一組二路的LV,也就是一個LV由兩個PV構成一群組,並設定為交錯式存取的LV,在增加PV進入群組時,就必須一次增加兩個PV,才能維持交錯式LV有足夠的空間操作。

建立交錯式LV的指令:

 LVM的進一步運用16.jpg

參數-i決定了交錯存取的PV數量,此數量不可超過構成群組的PV總數量,可設定交錯存取的LV大小取決於可使用的PV大小,如果PV大小不同,則可執行交錯式LV的容量,會取決於最小的PV容量。比如說,一個2-WAY的交錯式LV,即是一個LV由兩個PV構成,若兩個PV中一個20G另一個是30G,則可以建立的交錯式存取LV的空間就被限制在40G之下。

   LVM的進一步運用17.jpg

當LVM的設定混合了預設的線性模式之後,某些PV的空間可能經被使用了,我們可以透過指定使用PV上的PE(Physical Extend)數來使用PV上未使用的空間:

 

  LVM的進一步運用18.jpgLVM的進一步運用19.jpg

上面這個指令就更有趣一些,-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。

 LVM的進一步運用20.jpg

問題是,只有兩個PV,卻又想要使用鏡射式LV來避險,犧牲一點效能,可不可以?

所以,先刪除之前的LV:

 LVM的進一步運用21.jpg

由群組中移除剛剛加入的PV:

 

LVM的進一步運用22.jpg

現在群組中只有兩個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

 

, , ,

lccnetvip 發表在 痞客邦 PIXNET 留言(0) 人氣()