跳至內容
阿里BaBa電腦筆記
使用者工具
登入
網站工具
工具
顯示頁面
舊版
反向連結
最近更新
多媒體管理器
網站地圖
登入
最近更新
多媒體管理器
網站地圖
足跡:
linux:lvm2
本頁是唯讀的,您可以看到原始碼,但不能更動它。您如果覺得它不應被鎖上,請詢問管理員。
======圖解LVM====== 本篇主要以實體Partition角度來表達LVM整體結構。為了方便說明,以下會用3個Partition,分別是40G、40G及20G容量已建立一個LV。 =====實體Partition與LVM===== 假設已經建立一個LVM,也儲存一些資料分別是A、B、C、D、E及F。以實體Partition及LVM兩者不同角度來看看儲存資料狀態。 由示意圖可以看出A,B,C,D,E,F六個不同資料分別儲存在不同的分割區,但由軟體所管理的LV則整合一個磁區儲存著6個不同資料。 ^ 實體Partition ^ LVM ^ | {{:linux:partition角度.gif?200|}} | {{:linux:lvm角度.gif?200|}} | =====LVM建立演變過程===== - 實體硬碟建立分割區 - 每個分割區格式化為8e(LVM專屬檔案格式);此過程稱為PV(Physical Volume)。 - 每個PV整合一個VG(Volume Group)。(其實VG可以看作一整個大硬碟) - 再由VG分割成自訂容量大小的LV(Logical Volume)。(其實LV可以看作是分割區,只是這個分割區是由LVM所控制的) ^由傳統硬碟分割方式演變成LVM過程^ |{{:linux:lvm整合演變流程.gif?500|}}| ======簡單範例1-從無到有建立LVM====== 為方便建立硬碟,以下範例都是以虛擬機來模擬。分別建立1G(/dev/sdb),500MB(/dev/sdc)硬碟整合1個VG,再VG上建立500MBLV。 =====以傳統分割Partition===== {{:linux:partition1.gif?200|}} 分別建立/dev/sdb1及/dev/sdc1, 並改變系統ID為8e<code>#fdisk /dev/sdb press n press Enter press Enter Press t Press 8e </code><code>#fdisk /dev/sdc press n press Enter press Enter Press t Press 8e </code><code>#fdisk -cul ~略~ Device Boot Start End Blocks Id System /dev/sdb1 63 2088449 1044193+ 8e Linux LVM ~略~ Device Boot Start End Blocks Id System /dev/sdc1 32 1048575 524272 8e Linux LVM </code> =====建立PV(Physical Volume)===== {{:linux:pv1.gif?200|}} <code>#pvcreate /dev/sdb1 /dev/sdc1 Physical volume "/dev/sdb1" successfully created Physical volume "/dev/sdc1" successfully created </code>顯示PV Summary<code>#pvscan PV /dev/sdb1 lvm2 [1019.72 MiB] PV /dev/sdc1 lvm2 [511.98 MiB] Total: 2 [1.50 GiB] / in use: 0 [0 ] / in no VG: 2 [1.50 GiB] </code> =====/dev/sdb1 及 /dev/sdc1加入VG(Volume Group)===== {{:linux:vg1.gif?200|}} <code 1>#vgcreate VG1.5 /dev/sdb1 /dev/sdc1 Volume group "VG1.5" successfully created </code> 詳細顯示 名為VG1.5資訊 <code 1>#vgdisplay VG1.5 --- Volume group --- VG Name VG1.5 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 1 VG Access read/write VG Status resizable MAX LV 0 Cur LV 0 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.49 GiB -->整個VG容量有 1.5GB PE Size 4.00 MiB -->每個PE佔4MB Total PE 381 -->VG共有381個PE Alloc PE / Size 0 / 0 -->目前未使用,表示還未切割LV(Logical Volume) Free PE / Size 381 / 1.49 GiB -->PE是lvm最小的儲存單位;其實他像是一般檔案系統的Block。目前381個PE 共約1.5GB VG UUID 0zW8Gv-frp1-6mKr-o0to-95K3-SVu2-Djf1Pu </code> =====在VG上建立LV(Logical Volume)===== {{:linux:lv1.gif?200|}} 目前VG共約1.5GB。這邊先建立**LV** 容量為500MB <code 1>#lvcreate -L 500MB -n lvDisk VG1.5 Logical volume "lvDisk" created </code> 顯示VG詳細的用量 <code> --- Volume group --- VG Name VG1.5 System ID Format lvm2 Metadata Areas 2 Metadata Sequence No 2 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 0 Max PV 0 Cur PV 2 Act PV 2 VG Size 1.49 GiB PE Size 4.00 MiB Total PE 381 Alloc PE / Size 125 / 500.00 MiB -->已分配125個PE;共500MB Free PE / Size 256 / 1.00 GiB VG UUID 0zW8Gv-frp1-6mKr-o0to-95K3-SVu2-Djf1Pu </code> 列出系統上所有的LV <code 1>#lvscan ACTIVE '/dev/VG1.5/lvDisk' [500.00 MiB] inherit </code> 詳細顯示/dev/VG1.5/lvDisk資訊 <code>#lvdisplay /dev/VG1.5/lvDisk --- Logical volume --- LV Name /dev/VG1.5/lvDisk VG Name VG1.5 LV UUID TGwY7n-YcSA-GSjR-SXwX-eXFt-XoZX-Ng0Bfc LV Write Access read/write LV Status available # open 1 LV Size 500.00 MiB Current LE 125 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0 </code> 針對LV /dev/VG1.5/lvDisk進行建立檔案系統(Formate) <code 1>#mkfs -t ext4 /dev/VG1.5/lvDisk</code> 掛載 /dev/VG1.5/lvDisk 到 /lvDisk(如圖,灰色區域是可以儲存資料部分) <code 1>#mkdir /lvDisk #mount /dev/VG1.5/lvDisk /lvDisk </code> ======範例2-舊硬碟資料移除到新硬碟====== 目前lvm上,架構一個硬碟為/dev/sdc1(舊硬碟)。此範例的目標要將/dev/sdc1的資料全部移轉到/dev/sdb1。 顯示目前一些背景資料:<code>#fdisk -l Disk /dev/sdb: 1073 MB, 1073741824 bytes ~略~ Device Boot Start End Blocks Id System /dev/sdb1 1 130 1044193+ 8e Linux LVM Disk /dev/sdc: 536 MB, 536870912 bytes ~略~ Device Boot Start End Blocks Id System /dev/sdc1 1 512 524272 8e Linux LVM </code><code>#pvscan PV /dev/sdc1 VG VG1.5 lvm2 [508.00 MiB / 160.00 MiB free] -->508-160=348MB;已有348MB被LV所使用 Total: 1 [508.00 MiB] / in use: 1 [508.00 MiB] / in no VG: 0 [0 ] </code><code>#vgdisplay --- Volume group --- VG Name VG1.5 System ID Format lvm2 Metadata Areas 1 Metadata Sequence No 31 VG Access read/write VG Status resizable MAX LV 0 Cur LV 1 Open LV 1 Max PV 0 Cur PV 1 Act PV 1 VG Size 508.00 MiB PE Size 4.00 MiB Total PE 127 Alloc PE / Size 87 / 348.00 MiB Free PE / Size 40 / 160.00 MiB VG UUID 0zW8Gv-frp1-6mKr-o0to-95K3-SVu2-Djf1Pu </code><code>#lvscan ACTIVE '/dev/VG1.5/lvDisk2' [348.00 MiB] inherit </code> - 由以上背景資訊(pvscan)判斷,新硬碟(/dev/sdb1)需要建立PV及加入VG1.5<code>#pvcreate /dev/sdb1 # vgextend VG1.5 /dev/sdb1 </code> - 卸除/dev/VG1.5/lvDisk2<code>#umount /dev/VG1.5/lvDisk2</code> - 開始將舊硬碟(/dev/sdc1)轉移到新硬碟(/dev/sdb1)<code>#pvscan PV /dev/sdc1 VG VG1.5 lvm2 [508.00 MiB / 160.00 MiB free] PV /dev/sdb1 VG VG1.5 lvm2 [1016.00 MiB / 1016.00 MiB free] </code><code>#pvmove -v -i 2 /dev/sdc1 /dev/sdb1 每2秒開始秀出一些訊息 ~略~ /dev/sdc1: Moved: 2.3% /dev/sdc1: Moved: 26.4% /dev/sdc1: Moved: 50.6% /dev/sdc1: Moved: 74.7% /dev/sdc1: Moved: 98.9% /dev/sdc1: Moved: 100.0% ~略~ #pvscan PV /dev/sdc1 VG VG1.5 lvm2 [508.00 MiB / 508.00 MiB free] PV /dev/sdb1 VG VG1.5 lvm2 [1016.00 MiB / 668.00 MiB free] -->已換到新硬碟上了 #vgdisplay --- Volume group --- VG Name VG1.5 ~略~ VG Size 1.49 GiB PE Size 4.00 MiB Total PE 381 -->總PE個數產生變化 Alloc PE / Size 87 / 348.00 MiB -->以經分配87個PE Free PE / Size 294 / 1.15 GiB -->還有294個PE未使用 VG UUID 0zW8Gv-frp1-6mKr-o0to-95K3-SVu2-Djf1Pu </code> - 舊硬碟卸除 * 在VG1.5上退出舊硬碟(/dev/sdc1)<code>#vgreduce VG1.5 /dev/sdc1</code> * 在舊硬碟(/dev/sdc1)拿掉PV<code>#pvremove /dev/sdc1</code> * 顯示<code>#pvscan PV /dev/sdb1 VG VG1.5 lvm2 [1016.00 MiB / 668.00 MiB free] -->已移除舊硬碟了 Total: 1 [1016.00 MiB] / in use: 1 [1016.00 MiB] / in no VG: 0 [0 ] </code> - 測試掛載<code>#mkdir lvDisk #mount /dev/VG1.5/lvDisk2 /lvmDisk/ </code> ======範例3-增加容量====== 本範例3承接範例2環境情況。目前/dev/VG1.5/lvDisk2的容量為348MB,現在要增加500MB容量,使總容量為848MB。 <code> --- Logical volume --- LV Name /dev/VG1.5/lvDisk2 VG Name VG1.5 LV UUID 7as5jn-HPPS-5teW-2MqQ-NaD8-9R8f-gHt5hA LV Write Access read/write LV Status available # open 1 LV Size 348.00 MiB Current LE 87 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:0</code> - 增加125PE到/dev/VG1.5/lvDisk2<code>#lvextend -l +125 /dev/VG1.5/lvDisk2</code> - 格式化增加的區塊<code>#resize2fs /dev/VG1.5/lvDisk2</code> - 顯示是否正確<code>#df -h /dev/mapper/VG1.5-lvDisk2 823M 50M 731M 7% /lvmDisk </code> =======範例4-減少容量====== 現在有一個Logical Volum :**lvtest**容量為200MB,此範例目標減少到100MB。 <code> --- Logical volume --- LV Name /dev/vgtest/lvtest VG Name vgtest LV UUID fM6ZTM-cQdj-wquV-T585-gHo6-dreJ-fRDqc2 LV Write Access read/write LV Status available # open 1 LV Size 200.00 MiB Current LE 50 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 253:3 </code> <code>#df -h 檔案系統 Size Used Avail Use% 掛載點 ~略~ /dev/mapper/vgtest-lvtest 194M 37M 147M 21% /media/test </code> <code># ls -l /media/test 總計 21 drwxr-xr-x. 112 root root 7168 2012-03-15 21:59 etc drwx------. 2 root root 12288 2012-03-15 21:58 lost+found </code> - 卸載 /dev/mapper/vgtes-test<code 1>#umount /media/test</code> - 磁碟檢查,以利於分散資料集中,才不會造成減少容量而損失原有的資料<code>#fsck -f /dev/mapper/vgtest-lvtest</code> - 重新劃分檔案系統的容量為100MB<code>#resize2fs /dev/mapper/vgtest-lvtest 100M</code> - 減少/dev/mapper/vgtest-test容量為100MB<code>#lvreduce -L 100MB /dev/mapper/vgtest-lvtest WARNING: Reducing active logical volume to 100.00 MiB THIS MAY DESTROY YOUR DATA (filesystem etc.) Do you really want to reduce lvtest? [y/n]: y Enter Reducing logical volume lvtest to 100.00 MiB Logical volume lvtest successfully resized </code> - 重新掛載<code>#mount /dev/vgtest/lvtest /media/test/ #ll /media/test/ drwxr-xr-x. 112 root root 7168 2012-03-15 21:59 etc drwx------. 2 root root 12288 2012-03-15 21:58 lost+found #df -h 檔案系統 Size Used Avail Use% 掛載點 ~略~ /dev/mapper/vgtest-lvtest 97M 37M 55M 41% /media/test </code> ======參考資料====== - [[http://maxubuntu.blogspot.com/2010/05/lvm2.html#target7|LVM2學習筆記]] - [[http://blog.xuite.net/m740138.m740138/blog/31793294|lvm實戰]] - [[http://itcat.pixnet.net/blog/post/13533189-%5Brhce%E8%AA%B2%E5%A0%82%E7%AD%86%E8%A8%98%5D-lvm|LVM筆記]]
linux/lvm2.txt
· 上一次變更: 2013/07/19 00:28 (外部編輯)
頁面工具
顯示頁面
舊版
反向連結
回到頁頂