linux LVM 邏輯卷組管理
LVM邏輯卷組管理
LVM實作硬碟容量自由擴充,提高可用性。
實驗部分:
1、建立3個100M的分區。
[root@zhaoyun ~]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
255 heads, 63 sectors/track, 3916 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 3916 31455238+ 83 Linux
Disk /dev/sdb: 21.4 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders
Disk /dev/sdb doesn't contain a valid partition table
[root@zhaoyun ~]# fdisk /dev/sdb
Command (m for help): n
Command action
e extended
p primary partition (1-4)
e
Partition number (1-4): 1
First cylinder (1-2610, default 1):
Using default value 1
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610):
Using default value 2610
l logical (5 or over)
l
Last cylinder or +size or +sizeM or +sizeK (1-2610, default 2610): +100M
First cylinder (14-2610, default 14):
Using default value 14
Last cylinder or +size or +sizeM or +sizeK (14-2610, default 2610): +100M
l
First cylinder (27-2610, default 27):
Last cylinder or +size or +sizeM or +sizeK (27-2610, default 2610): +100M
Command (m for help): p
/dev/sdb1 1 2610 20964793+ 5 Extended
/dev/sdb5 1 13 104359+ 83 Linux
/dev/sdb6 14 26 104391 83 Linux
/dev/sdb7 27 39 104391 83 Linux
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
[root@zhaoyun ~]#
[root@zhaoyun ~]#
2、建立實體卷
使用pvcreate指令建立實體卷。pvs可以檢視已經建立好的實體卷。
[root@zhaoyun ~]# pvcreate /dev/sdb5
Physical volume "/dev/sdb5" successfully created
[root@zhaoyun ~]# pvs 還有一個pvdisplay指令也可以檢視
PV VG Fmt Attr PSize PFree
/dev/sdb5 lvm2 -- 101.91M 101.91M
3、建立卷組
使用vgcreate指令建立卷組。vgs可以檢視到已經建立好的卷組
[root@zhaoyun ~]# vgcreate vg0 /dev/sdb5
Volume group "vg0" successfully created
[root@zhaoyun ~]# vgs 還有一個vgdisplay指令也可以檢視
VG #PV #LV #SN Attr VSize VFree
vg0 1 0 0 wz--n- 100.00M 100.00M
4、建立邏輯卷
使用lvcreate指令建立邏輯卷,使用lvs可以檢視以建立好的邏輯卷
[root@zhaoyun ~]# lvcreate -L 100M -n lv0 vg0
Logical volume "lv0" created
[root@zhaoyun ~]# lvs 還有一個lvdisplay指令也可以檢視
LV VG Attr LSize Origin Snap% Move Log Copy% Convert
lv0 vg0 -wi-a- 100.00M
5、格式化邏輯卷,并挂載使用。
使用格式化指令,格式或邏輯卷。
mkfs.ext3 /dev/vg0/lv0
[root@zhaoyun ~]# mkfs.ext3 /dev/vg0/lv0
#将邏輯卷挂載使用。
[root@zhaoyun ~]# mount /dev/vg0/lv0 /mnt
[root@zhaoyun ~]# cd /mnt
[root@zhaoyun mnt]# ls
lost+found
[root@zhaoyun mnt]# touch file
file lost+found
[root@zhaoyun mnt]# df -h
檔案系統 容量 已用 可用 已用% 挂載點
/dev/sda1 30G 3.1G 25G 11% /
tmpfs 95M 0 95M 0% /dev/shm
/dev/mapper/vg0-lv0 97M 5.6M 87M 7% /mnt #看到挂載的卷。
現在一個邏輯卷就可以正常工作了,現在要把這個卷的空間擴大,比如增加100M。
因為剛才建立的實體卷和邏輯組隻有100M都已經配置設定至邏輯卷了。已經沒有可用空間來擴充,那麼就需要重新建立一個實體卷,然後擴大卷組,再配置設定給邏輯卷。
擴充是線上擴充的,就是不需要将已經過載的邏輯卷解除安裝掉。
1、建立一個新的實體卷。
[root@zhaoyun ~]# pvcreate /dev/sdb6
Physical volume "/dev/sdb6" successfully created
[root@zhaoyun ~]# pvs
/dev/sdb5 vg0 lvm2 a- 100.00M 0
/dev/sdb6 lvm2 -- 101.94M 101.94M 現在可以看到實體卷有倆塊磁盤了。
2、擴充卷組
[root@zhaoyun ~]# vgextend vg0 /dev/sdb6
Volume group "vg0" successfully extended
[root@zhaoyun ~]# vgs
vg0 2 1 0 wz--n- 200.00M 100.00M
3、擴充邏輯卷
先看下之前lv0的大小
[root@zhaoyun ~]# lvs
lv0 vg0 -wi-ao 100.00M
擴充lv0
[root@zhaoyun ~]# lvextend -L +100M /dev/vg0/lv0
Extending logical volume lv0 to 200.00 MB
Logical volume lv0 successfully resized
可以看到說是已經擴充到200M了,在看下系統挂載使用的情況,發現還是97M,沒有擴大。
[root@zhaoyun ~]# df -h
/dev/mapper/vg0-lv0 97M 5.6M 87M 7% /mnt
執行resize2fs指令使擴充生效
[root@zhaoyun ~]# resize2fs /dev/vg0/lv0
resize2fs 1.39 (29-May-2006)
Filesystem at /dev/vg0/lv0 is mounted on /mnt; on-line resizing required
Performing an on-line resize of /dev/vg0/lv0 to 204800 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 204800 blocks long.
再看的話已經将分區成功擴充了。。
/dev/mapper/vg0-lv0 194M 5.6M 179M 4% /mnt
LVM還可以實作縮小操作,,不建議做縮小操作,隻不過看看現象就行了。
将剛才194M的邏輯卷縮小到150M。
縮小不支援線上,需要先解除安裝掉已經挂載的邏輯卷。
1、先解除安裝挂載的卷
[root@zhaoyun ~]# umount /dev/vg0/lv0
2、執行檢查
[root@zhaoyun ~]# e2fsck -f /dev/vg0/lv0
e2fsck 1.39 (29-May-2006)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/vg0/lv0: 12/49400 files (8.3% non-contiguous), 11903/204800 blocks
3、重新配置卷大小,分倆步
[root@zhaoyun ~]# resize2fs /dev/vg0/lv0 150M
Resizing the filesystem on /dev/vg0/lv0 to 153600 (1k) blocks.
The filesystem on /dev/vg0/lv0 is now 153600 blocks long.
[root@zhaoyun ~]# lvreduce -L 150M /dev/vg0/lv0
Rounding up size to full physical extent 152.00 MB
WARNING: Reducing active logical volume to 152.00 MB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lv0? [y/n]: y
Reducing logical volume lv0 to 152.00 MB
4、重新挂載,已經重194M成功減少到146M了。
/dev/mapper/vg0-lv0 146M 5.6M 134M 4% /mnt
LVM快照功能,通過快照功能可以了解為備份,,就想VM虛拟機一樣有一個快照的功能。
[root@zhaoyun ~]# lvcreate -L 40M -s -n lv0bak /dev/vg0/lv0
Logical volume "lv0bak" created
[root@zhaoyun ~]# ll /dev/vg0/lv0
lv0 lv0bak
[root@zhaoyun ~]# ll /dev/vg0/lv0bak
lrwxrwxrwx 1 root root 22 11-29 08:29 /dev/vg0/lv0bak -> /dev/mapper/vg0-lv0bak
[root@zhaoyun ~]# mount /dev/vg0/lv0bak /media
[root@zhaoyun ~]# cd /media
[root@zhaoyun media]# ls
[root@zhaoyun media]# touch file2
file file2 lost+found
[root@zhaoyun media]# cd /mnt
[root@zhaoyun mnt]#
删除卷組。
[root@zhaoyun ~]# umount /dev/vg0/lv0bak
[root@zhaoyun ~]# lvremove /dev/vg0/lv0
Do you really want to remove active logical volume lv0bak? [y/n]: y
Logical volume "lv0bak" successfully removed
Do you really want to remove active logical volume lv0? [y/n]: y
Logical volume "lv0" successfully removed
[root@zhaoyun ~]# lvremove /dev/
Display all 197 possibilities? (y or n)
vg0 2 0 0 wz--n- 200.00M 200.00M
[root@zhaoyun ~]# vgremove vg0
Volume group "vg0" successfully removed
/dev/sdb6 lvm2 -- 101.94M 101.94M
[root@zhaoyun ~]# pvremove /dev/sdb5 /dev/sdb6
Labels on physical volume "/dev/sdb6" successfully wiped
檢視已經沒有資訊了
本文轉自zhaoyun00 51CTO部落格,原文連結:http://blog.51cto.com/zhaoyun/729244