需求:
服務器上掛載了一塊2T的硬盤,但/home只有100G左右,Hadoop DataNode節點安裝在/home內,需要存儲處理大量數據。
學習:
什麼是LVM?
主要步驟:
1)通過fdisk 工具將磁盤轉換爲linux分區
2)通過pvcreate命令將linux分區轉換成物理卷(PV);
3)通過vgcreate命令將創建好的物理卷處理成卷組(VG);
4)通過lvcreate命令將卷組分成若干個邏輯卷(LV);
5)對邏輯捲進行格式化,掛載,動態調整邏輯卷的大小,並且該操作不會影響邏輯卷(Lv)上的數據。
以下詳細列出可能用到的命令:
1. 使用fdisk -l 命令查看磁盤分區
sudo fdisk -l
Disk /dev/sda: 1999.3 GB, 1999307276288 bytes
255 heads, 63 sectors/track, 243068 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0002e54e
Device Boot Start End Blocks Id System
/dev/sda1 1 1 1024 83 Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2 1 243069 1952445440 8e Linux LVM
可以看到分區sda共有近2個T的容量,sda1的type爲Linux;sda2爲Linux LVM類型。
如果是新掛載的空白磁盤,可以使用fdisk命令將磁盤轉換爲Linux LVM類型。然後執行2,3步驟。
2. 將linux物理分區轉變爲物理卷 (針對新的LVM類型分區)
$pvcreate /dev/sdb{1,2}
#將物理分區/dev/sdb{1,2}轉變爲物理卷
執行此命令成功後,會提示success!
執行pvdisplay可以查看物理卷的詳細信息:
$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda2
VG Name vg00
PV Size 1.82 TiB / not usable 1.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 476671
Free PE 185166
Allocated PE 291505
PV UUID JsAGuo-Fi0u-nHUc-WBuq-Tqg7-cseM-CcB2tl
通過執行pvscan,可以查看物理卷總容量、已用、剩餘的情況:
$ sudo pvscan
PV /dev/sda2 VG vg00 lvm2 [1.82 TiB / 723.30 GiB free]
Total: 1 [1.82 TiB] / in use: 1 [1.82 TiB] / in no VG: 0 [0 ]
共有1個物理卷vg00,1.82TB,723.30GB空閒可用,其餘已經分配
刪除物理卷使用pvremove命令,例如:
$pvremove /dev/sdb2
#刪除物理卷,
Labels on physical volume "/dev/sdb2" successfully wiped
3. 使用vgcreate命令將PV創建成卷組VG,VG創建後,可以方便的從VG中爲邏輯卷LV分配/回收空間
創建VG:
$vgcreate vg00 /dev/sda2
#將已經是物理卷的/dev/sda2轉化爲卷組名爲vg00的卷組
若有多個物理卷創建一個VG,可以使用vgcreate vg00 /dev/sda{1,2}形式
執行vgscan可以查看當前存在的卷組:
$ sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "vg00" using metadata type lvm2
使用vgdisplay可以查看當前卷組的詳細情況;
mk@log1:~$ sudo vgdisplay
--- Volume group ---
VG Name vg00
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 21
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 4
Open LV 4
Max PV 0
Cur PV 1
Act PV 1
VG Size 1.82 TiB
PE Size 4.00 MiB
Total PE 476671
Alloc PE / Size 291505 / 1.11 TiB
Free PE / Size 185166 / 723.30 GiB
VG UUID eOAdfu-WrNY-znxa-U0Zv-NdmY-ANW8-utbvCH
若爲卷組增加一個物理卷,可以使用vgextend:
$pvcreate /dev/sda3
#先創建一個新的物理卷
Physical volume "/dev/sda3" successfully created
$vgextend vg00 /dev/sda3
#再將新增的物理卷添加到vg00卷組中
Volume group "vg01" successfully extended
刪除卷組使用vgremove命令:
$vgremove /dev/vg00
****對於前面提到的需求,如果2,3兩步已經完成,可直接執行第四步。
****注意:
先將/下的/home備份爲/home_old,然後在/下創建/home路徑,再執行下面的掛載!!
4. 創建邏輯卷lvcreate
創建邏輯卷共分爲兩個部分,lvcreate一個邏輯卷,並且格式化邏輯卷爲制定的文件系統
1)創建邏輯卷大小爲1000G卷名爲home,從vg00生成
$lvcreate -L 1000G -n home vg00
#從卷組vg00上劃分1000G的空間爲邏輯卷home
2)對劃分的邏輯捲進行格式化
$mkfs -t ext3 /dev/vg00/home
#以ext3的文件格式化邏輯卷
執行lvscan可以查看當前vg中的邏輯卷:
$ sudo lvscan
ACTIVE '/dev/vg00/boot' [92.00 MiB] inherit
ACTIVE '/dev/vg00/swap' [3.72 GiB] inherit
ACTIVE '/dev/vg00/root' [110.88 GiB] inherit
ACTIVE '/dev/vg00/home' [1.00 TiB] inherit
同理,lvdisplay可以查看具體信息。
使用lvextend/lvreduce可以增加或者減小邏輯卷的大小:
使用lvextend增大邏輯卷大小:
$lvextend -L +1G /dev/vg00/home
#從卷組vg00上對邏輯卷/dev/vg00/homne進行擴容1G
使用lvreduce減小邏輯卷大小,必須是離線方式(即先umount文件系統)
$lvreduce -L -1G /dev/vg00/home
#將邏輯卷/dev/vg00/home容量減小1GB
使用resize2fs命令更新系統識別的文件系統大小,立即生效
$resize2fs /dev/vg00/home
#使增加的邏輯卷大小立即生效
如果提示busy,可以先umount文件系統,resize之後再mount
刪除邏輯卷使用lvremove /dev/vg00/home
5. 掛載邏輯卷
步驟4之後,使用$mount /dev/vg00/home /home 即可將邏輯卷掛在之前創建的/home下
使用df命令,可以查看當前系統空間分配,/home有1T的大小,已用11G,可用947G
mk@log1:~$ sudo df -lh
/dev/mapper/vg00-home
1008G 11G 947G 2% /home
......
Done!
原文地址:http://nourlcn.ownlinux.net/2011/10/lvm-resize-partion-size.html
本博客訂閱地址:http://feeds.feedburner.com/nourlcn