歡迎您光臨本站 註冊首頁

Linux筆記25.LVM邏輯卷管理器

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

Linux筆記25.LVM邏輯卷管理器

LVM技術產生的背景:企業日益變化的存貯需求是的傳統的磁碟存儲顯示不夠靈活

磁碟分區存儲 /home /var / 100M 200M 5G 100M /dev/sda1 100M /dev/sda2 50M /dev/sda3 PV (physical volume)物理卷 VG (Volume Group)卷組 LV (Logical Volume)邏輯卷 pvcreate /dev/sda1 /dev/sda2 /dev/sda3 100M/dev/sda1 100M/dev/sda2 50M/dev/sda3 vgcreate vg0 /dev/sda1 /dev/sda2 200M 50M lvcreate –n thizdata -L 10M vg0 vg0:200M Lv 10M VG:190M PV:50M e2fsadm –L 10M /dev/vg0/thizdata LV:20M vgextend vg0 /dev/sda3 vg0:250M LV:20M VG:230M pvmove /dev/sda1 [/dev/sdb1] 將數據移到其它位置 vg0:150M 具體操作步驟: 建好分區或磁碟 將分區id改為linux lvm (8e) fdisk /dev/sdb 分區sdb1,sdb2,sdb3 分區類型8e(Linux LVM)如果系統在使用sdb,需要重啟,以便系統重新讀取sdb的分區表信息 用pvcreate 初始化分區 #pvcreate /dev/sdb[1-3] 初始化物理卷 用vgscan掃描物理卷(第一次做LVM的必要步驟) #vgscan 掃描物理卷,創建卷組資料庫,第一次創建lvm必須運行此命令 用vgcreate建一個新的卷組 #vgcreate vg0 /dev/sdb1 /dev/sdb2 用sdb1,sdb2創建卷組vg0 使用“vgdisplay 卷組名”可查看卷組 #vgdisplay vg0 使用lvcreate建立邏輯卷 .#lvcreate -n data -L 10M vg0 從vg0中創建一個新的名為data,大小10M的邏輯卷 其它相關命令: #lvscan :顯示有多少邏輯卷可供使用 #vgdisplay:顯示卷組信息 #lvdisplay:顯示邏輯卷信息 #pvscan :顯示磁碟卷 #pvreduce : 移除卷組中已經刪除掉的邏輯分區 pvreduce vg0 /dev/sda1 創建LVM邏輯卷管理大容量磁碟 #man pvcreate 修改PE的大小來擴充卷組的容量 #vgcreate –s 16M vg2 /dev/sdd1 lvcreate其它參數: #lvcreate --help -s的功能是捕捉快照,它的作用是瞬間捕捉lvm的動作狀態,然後備份數據. 在linux中,linux是一個多用戶,多任務的網路操作系統,數據移動量非常的大,如果用傳統的cp或其它命令copy數據時,會造成數據的不同步.比如說,你正從home目錄中往tmp備份數據,如果先備份tmp然後再備份home時,可能會出現時間差,導致數據無法備份到,我們在LVM中通常採用快照的方法來備份數據 採用快照備份數據(lvcreate -s) 系統中數據太多時不宜使用快照功能,會拖垮你的機器 用lvcreate –s 創建快照的空間一定要比將要備份的空間要大,否則會發現磁碟溢出現像 創建快照時可加-L 等定義塊大小的參數 #lvcreate -s -L 8M/G -n snap /dev/vg0/thiz 注意:快照方式只能用一次,系統重新啟動就要失效,另注意,系統的數據不是很多的情況可以使用,如果系統的數據很多會拖慢你的機器 快照卷只保留做快照一剎那時刻的數據,後期變動的數據將無法添加到快照中去. 刪除邏輯卷 刪除邏輯卷時按LV VG PV的順序來卸載 #lvremove /dev/vg0/lv1 #vgchange -an vg0 (停止vg0工作狀態) #vgchange -ay vg0 (激活vg0工作狀態) 要確認邏輯是激活的,沒有掛載的.Vg是不能直接刪除的,我們要把vg的激活狀態轉換成休眠狀態,停止vg設備 a表示active(活躍) y表示yes n表示no #pvreduce : 移除卷組中已經刪除掉的邏輯分區 pvreduce vg0 /dev/sda1 LVM實例 #fdisk /dev/hda

Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 2 16033 83 Linux /dev/hda2 3 600 4803435 83 Linux /dev/hda3 601 607 56227 83 Linux /dev/hda4 608 614 56227 83 Linux Command (m for help): t Partition number (1-4): 3 Hex code (type L to list codes): 8e Command (m for help): p Disk /dev/hda: 255 heads, 63 sectors, 623 cylinders Units = cylinders of 16065 * 512 bytes Device Boot Start End Blocks Id System /dev/hda1 1 2 16033 83 Linux /dev/hda2 3 600 4803435 83 Linux /dev/hda3 601 607 56227 8e Unknown /dev/hda4 608 614 56227 83 Linux Command (m for help): w 我們對/dev/hdb2做同樣的操作,這是需要的,以至LVM能重建你應該丟失的配置. 通常,不需要重啟,但有些計算機卻要求.因此如果下面的例子不工作,試試重啟. 接著我們創建物理卷(PV),如下: # pvcreate /dev/hda3

pvcreate -- physical volume "/dev/hda3" successfully created # pvcreate /dev/hdb2 pvcreate -- physical volume "/dev/hdb2" successfully created 我們再將這兩個物理卷(PV)加到一個叫做“test”的卷組(VG)中: # vgcreate test /dev/hdb2 /dev/hda3 vgcreate -- INFO: using default physical extent size 4 MB vgcreate -- INFO: maximum logical volume size is 255.99 Gigabyte vgcreate -- doing automatic backup of volume group "test" vgcreate -- volume group "test" successfully created and activated 現在我們有一個空的卷組(VG),讓我們來檢查一下: # vgdisplay -v test --- Volume group --- VG Name test VG Access read/write VG Status available/resizable PV Name (#) /dev/hda3 (2) PV Status available / allocatable Total PE / Free PE 13 / 13 PV Name (#) /dev/hdb2 (1) PV Status available / allocatable

Total PE / Free PE 33 / 33 我們看到沒有邏輯卷(LV)定義,因此我們要補上它.我們將在“test”卷組(PV)中創建一個50MB的邏輯卷,叫做“HOWTO”: # lvcreate -L 50M -n HOWTO test lvcreate -- rounding up size to physical extent boundary "52 MB" lvcreate -- doing automatic backup of "test" lvcreate -- logical volume "/dev/test/HOWTO" successfully created Ok,到這裡,我們創建一個文件系統: # mkfs.ext3 /dev/test/HOWTO mke2fs 1.18, 11-Nov-1999 for EXT2 FS 0.5b, 95/08/09 Filesystem label= OS type: Linux Block size=1024 (log=0) Fragment size=1024 (log=0) . Writing inode tables: done Writing superblocks and filesystem accounting information: done # mount /dev/test/HOWTO /mnt # ls /mnt lost found 我們做完了! 刪除邏輯卷步驟 1.umount所有LV 2.lvremove /dev/vg0/data (通過lvscan查看)如有快照,先移除快照再移除邏輯卷. 3.#vgchange -an /dev/vg0 休眠vg以便刪除,vgchange -ay /dev/vg0此命令能激活vg. 4.#vgremove vg0 擴大邏輯卷 #umount /mnt #lvextend -L 20M /dev/test/HOWTO 擴大邏輯卷20M,要先umount分區,再擴大 #e2fsck -f /dev/test/HOWTO 強行檢查HOWTO邏輯卷 #resize2fs /dev/test/HOWTO 重新定義分區大小 以上三步要按順序進行,用以下一條命令能達到上面三條命令相同的效果: #e2fsadm -L 20M /dev/test/HOWTO #pvscan 查看系統目前的物理卷情況 #vgextend vg0 /dev/sdb3 擴大卷組vg0,將分區sdb3加入卷組 #pvmove /dev/sdb1 移除物理卷 #vgreduce vg0 /dev/sdb1 從卷組中刪除sdb1 pvmove將數據移走,但sdb1還在vg0內,還是屬於卷組分區,vgreduce將sdb1從vg0中刪除


[火星人 ] Linux筆記25.LVM邏輯卷管理器已經有727次圍觀

http://coctec.com/docs/linux/show-post-49370.html