linux的LVM 具體配置過程

火星人 @ 2014-03-09 , reply:0


LVM:
幾個基本概念
PV Physical Volume (物理卷)就是實體磁碟 利用fdisk等軟體,將他們的ID改為LVM(8e)並修改磁碟的相關信息,讓他們成為LVM可用的磁碟
實體磁碟的ID 可以通過fdisk -l來查看,通常83是linux的partition,82是swap的代號 我們需要的是PV ID:8e
PV實施過程:fdisk修改ID,以pvcreate建立成PV
建立 PV 與 PV 的查詢:
要建立 PV 其實很簡單,只要直接使用 pvcreate 即可!我們來談一談與 PV 有關的指令吧!
• pvcreate :將實體 partition 建立成為 PV ;
• pvscan :搜尋目前系統裡面任何具有 PV 的磁碟;
• pvdisplay :顯示出目前系統上面的 PV 狀態;
• pvremove :將 PV 屬性移除,讓該 partition 不具有 PV 屬性.
• partprobe :這個指令可以讓核心立刻讀入最新的 partition table 而不必 reboot.
fdisk /dev/hda
command (m for help):p 這裡p是查看磁碟分區的相關情況
command (m for help):t 更換磁碟分區的ID號
partition number(1-4):1 選擇相應的磁碟分區1
Hex code(type L to list codes):8e 輸入ID號:8e
command (m for help):t 更換磁碟分區的ID號
partition number(1-4):2 選擇相應的磁碟分區2
Hex code(type L to list codes):8e 輸入ID號:8e
command (m for help):p 查看修改ID后磁碟分區的相關情況
Command (m for help): w 保存配置
partprobe 這個指令可以讓核心立刻讀取最新的partition table

[root@linux ~]# pvscan
No matching physical volumes found
[root@linux ~]# pvcreate /dev/hdb1
Physical volume "/dev/hdb1" successfully created


[root@linux ~]# pvcreate /dev/hdb2
Physical volume "/dev/hdb2" successfully created
[root@linux ~]# pvscan
PV /dev/hdb1 lvm2 [9.31 GB]
PV /dev/hdb2 lvm2 [9.31 GB]
Total: 2 [18.63 GB] / in use: 0 [0 ] / in no VG: 2 [18.63 GB]
VG Volume Group (卷組) 通過將一個或多個PV組合成一個大磁碟,最大容量值與底下的PE有關,如果完全使用LVM的預設參數,那麼一個最大的LVM磁碟可達到256G
VG實施過程:利用vgcreate加入多個PV成為VG
建立 VG 及 VG 相關的指令也不少,我們來看看:
• vgcreate :就是主要建立 VG 的指令啦!他的參數比較多,等一下介紹.
• vgscan :搜尋系統上面是否有 VG 存在?
• vgdisplay :顯示目前系統上面的 VG 狀態;
• vgextend :在 VG 內增加額外的 PV ;
• vgreduce :在 VG 內移除 PV;
• vgchange :設定 VG 是否啟動 (active);
• vgremove :刪除一個 VG 啊!
先建立 VG 吧!
[root@linux ~]# vgcreate vbirdvg /dev/hdb1 /dev/hdb2 創建一個VG,用兩個PV
Volume group "vbirdvg" successfully created
# 整個 vgcreate 的語法很簡單,就是利用 vgcreate VGname PVname1 PVname2..
# 不過,如果想要修改前面提到的 PE 參數時,就得要加入 -s PE 數值了!
[root@linux ~]# vgscan 查看具體VG參數
Reading all physical volumes. This may take a while...
Found volume group "vbirdvg" using metadata type lvm2
[root@linux ~]# vgdisplay
--- Volume group ---
VG Name vbirdvg
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 18.62 GB
PE Size 4.00 MB
Total PE 4768
Alloc PE / Size 0 / 0
Free PE / Size 4768 / 18.62 GB
VG UUID AZRSJx-FWYF-UIlH-NCh5-NqKS-f4gx-ZR049N
[root@linux ~]# vgreduce vbirdvg /dev/hdb2 從VG中去掉一個PV
Removed "/dev/hdb2" from volume group "vbirdvg"
[root@linux ~]# vgextend vbirdvg /dev/hdb2 從VG中增加一個PV
Volume group "vbirdvg" successfully extended

PE 在建立VG的時候,我們同時需要指定PE這個數值,預設是4MB;PE為4MB,VG則為256G(一個VG最大可以容許65534的PE,所以修改PE值,當然就會影響到最大的VG容量)
LV 這個就是被掛載到檔案系統的partition,這個LV是由VG分割來的
LV實施過程:利用lvcreate分割VG成為一個或多個LV
• lvcreate :建立 LV 啦!
• lvscan :查詢系統上面的 LV ;
• lvdisplay :顯示系統上面的 LV 狀態啊!
• lvextend :在 LV 裡面增加容量!
• lvreduce :在 LV 裡面減少容量;
• lvremove :刪除一個 LV !
• lvresize :對 LV 進行容量大小的調整!
[root@linux ~]# lvcreate -L [sizeMG] -n [LVname] VGname
參數:
-L :後面接容量,容量的單位可以是 M, G 等等;
-n :後面接的就是 LV 的名稱啦!
更多的說明應該可以自行查閱吧! man lvcreate


[root@linux ~]# lvcreate -L 18.62G -n vbirdlv vbirdvg
Rounding up size to full physical extent 18.62 GB
Logical volume "vbirdlv" created
[root@linux ~]# ll /dev/vbirdvg/vbirdlv
lrwxrwxrwx 1 root root 27 Nov 14 21:10 /dev/vbirdvg/vbirdlv ->
/dev/mapper/vbirdvg-vbirdlv
# 看見了沒有啊!?這就是我們最重要的一個玩意兒了!
# 未來所有要掛載的數據,通通是透過這個裝置的!
[root@linux ~]# lvscan
ACTIVE '/dev/vbirdvg/vbirdlv' [18.62 GB] inherit
[root@linux ~]# lvdisplay
--- Logical volume ---
LV Name /dev/vbirdvg/vbirdlv
VG Name vbirdvg
LV UUID B6kSrg-9LMG-gqVy-jjz8-x0gM-ya9S-XLFcZN
LV Write Access read/write
LV Status available
# open 0
LV Size 18.62 GB
Current LE 4767
Segments 2
Allocation inherit
Read ahead sectors 0
Block device 253:0
透過PV ,VG,LV的規劃,再利用mkfs(mke2fs -j)等等就可以將您的多個partition整合成為一個大磁碟,再利用這個大磁碟來分割與格式化.
這個大磁碟可以增加,減少容量的變化,也就是說,VG大磁碟可以抽換PV,並且原有的數據,理論上不會受影響.
實施過程:分割LV邏輯partition,然後格式化,直接掛載到LINUX的檔案系統中.
partition 的格式化與掛載!
[root@linux ~]# mke2fs -j /dev/vbirdvg/vbirdlv
[root@linux ~]# mkdir /mnt/lvm
[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm
[root@linux ~]# df 查看分區情況
[root@linux ~]# fdisk -l /dev/hdb 查看/dev/hdb的具體分區和使用情況



讓原有的 LVM 磁碟加大的方法: resize2fs
1. 將欲處理的 LV 卸載;
umount /mnt/lvm
2. 建立 PV;
[root@linux ~]# fdisk /dev/hdb
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): 8e
Changed system type of partition 3 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
[root@linux ~]# partprobe
[root@linux ~]# pvcreate /dev/hdb3
3. 將建立的 PV 以 vgextend 增加到 VG 當中;
[root@linux ~]# vgextend vbirdvg /dev/hdb3
4. 利用 lvextend 增加剛剛 VG 所增加的容量;
lvextend -L 10G /dev/vbirdvg/vbirdlv
5. 利用 resize2fs 將 LV 的容量確實增加!
[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm
[root@linux ~]# resize2fs [-f] [device] [size]
[root@linux ~]# umount /mnt/lvm
[root@linux ~]# resize2fs -f /dev/vbirdvg/vbirdlv
[root@linux ~]# mount -t ext3 /dev/vbirdvg/vbirdlv /mnt/lvm

另外,如果你想要將 LVM 移除的話,那麼就應該要:
1. 先卸載系統上面的 LVM 扇區;
2. 使用 lvremove 移除 LV ;
3. 使用 vgchange -a n VGname 讓 VGname 這個 VG 不具有 Active 的標誌;
4. 使用 vgremove 移除 VG:
5. 使用 pvremove 移除 PV;
6. ,使用 fdisk 修改 ID 回來啊!

本文出自 「wxfxn2000」 博客,謝絕轉載!





[火星人 via ] linux的LVM 具體配置過程已經有229次圍觀

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