天天看點

linux LVM 邏輯卷組管理

                                               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

繼續閱讀