邏輯卷管理LVM

一、LVM簡介

LVM是邏輯卷管理(Logical Volume Manager)的簡稱,它是建立在物理存儲設備之上的一個抽象層,允許你生成邏輯存儲卷,與直接使用物理存儲在管理上相比,提供了更好靈活性。
LVM將存儲虛擬化,使用邏輯卷,你不會受限於物理磁盤的大小,另外,與硬件相關的存儲設置被其隱藏,你可以不用停止應用或卸載文件系統來調整卷大小或數據遷移.這樣可以減少操作成本.
LVM與直接使用物理存儲相比,有以下優點:
1. 靈活的容量.
當使用邏輯卷時,文件系統可以擴展到多個磁盤上,你可以聚合多個磁盤或磁盤分區成單一的邏輯卷.
2.可伸縮的存儲池.
你可以使用簡單的命令來擴大或縮小邏輯卷大小,不用重新格式化或分區磁盤設備.
3.在線的數據再分配.
你可以在線移動數據,數據可以在磁盤在線的情況下重新分配.比如,你可以在線更換可熱插拔的磁盤.
4. 方便的設備命名
邏輯卷可以按你覺得方便的方式來起任何名稱.
5.磁盤條塊化.
你可以生成一個邏輯盤,它的數據可以被條塊化存儲在2個或更多的磁盤上.這樣可以明顯提升數據吞吐量.
6.鏡像卷
邏輯卷提供方便的方法來鏡像你的數據.
7.卷快照
使用邏輯卷,你可以獲得設備快照用來一致性備份或者測試數據更新效果而不影響真實數據.

二、 LVM基本術語
前面談到,LVM是在物理存儲上添加的一個邏輯層,來爲文件系統屏蔽下面的硬件存儲設備,提供了一個抽象的盤卷,在盤捲上建立文件系統。首先我們討論以下幾個LVM術語:

物理存儲介質(The Physical Media
這裏指系統的存儲設備,如:/dev/hda1/dev/sda等等,是存儲系統最低層的存儲單元。

物理卷(PV, Physical Volume
物理卷就是指磁盤,磁盤分區或從邏輯上與磁盤分區具有同樣功能的設備(RAID),是LVM的基本存儲邏輯塊,但和基本的物理存儲介質(如分區、磁盤等)比較,卻包含有與LVM相關的管理參數。當前LVM允許你在每個物理捲上保存這個物理卷的02份元數據拷貝.默認爲1,保存在設備的開始處.2,在設備結束處保存第二份備份.

卷組(VG, Volume Group
LVM卷組類似於非LVM系統中的物理硬盤,其由物理卷組成。可以在卷組上創建一個或多個“LVM分區(邏輯卷),LVM卷組由一個或多個物理卷組成。

邏輯卷(LV, Logical Volume
LVM的邏輯卷類似於非LVM系統中的硬盤分區,在邏輯卷之上可以建立文件系統(比如/home或者/usr)

=
*快照卷(Snapshot Volumes)
快照卷提供在特定瞬間的一個設備虛擬映像,當快照開始時,它複製一份對當前數據區域的改變,由於它優先執行這些改變,所以它可以重構當前設備的狀態。

* PEphysical extent
每一個物理卷被劃分爲稱爲PE(Physical Extents)的基本單元,具有唯一編號的PE是可以被LVM尋址的最小單元。PE的大小是可配置的,默認爲4MB

三、增加邏輯卷 

實驗前環境

1需要一個10G的卷組,一個爲4GPV,再加上一個6G的PV

先創建2個符合要求的PV sda5 和sda6 且類型爲linux LVm 8e。

Command (m for help): t
Partition number (1-6): 5

Hex code (type L to list codes): 8e
Changed system type of partition 5 to 8e (Linux LVM)

 

Command (m for help): t
Partition number (1-6): 6
Hex code (type L to list codes): 8e
Changed system type of partition 6 to 8e (Linux LVM)

Command (m for help): p 

Disk /dev/sda: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 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: 0x0000cc5a

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        7859    62914560   8e  Linux LVM
/dev/sda3            7859        8381     4199998+  83  Linux
/dev/sda4            8382       26108   142392127+   5  Extended
/dev/sda5            8382        8904     4200966   8e  Linux LVM
/dev/sda6            8905        9688     6297448+  8e  Linux LVM

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.

2.創建PV

[root@bogon ~]# pvcreate /dev/sda{5,6}
  Physical volume "/dev/sda5" successfully created
  Physical volume "/dev/sda6" successfully created

3.創建VG 將sda5創建爲myvg

[root@bogon ~]# vgcreate myvg /dev/sda5
  Volume group "myvg" successfully created

3.1 將sda6加入到卷組myvg中

[root@bogon ~]# vgextend myvg /dev/sda6 
  Volume group "myvg" successfully extended

3.2查看myvg

[root@bogon ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree
  myvg   2   0   0 wz--n- 10.01g 10.01g
  vg0    1   4   0 wz--n- 59.99g  7.99g

4、創建5G的邏輯卷LV-mylv

[root@bogon ~]# lvcreate -L 5G -n mylv myvg
  Logical volume "mylv" created

4.1、查看lv

[root@bogon ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  mylv myvg -wi-a-----  5.00g                                            
  root vg0  -wi-ao---- 20.00g                                            
  swap vg0  -wi-ao----  2.00g                                            
  usr  vg0  -wi-ao---- 10.00g                                            
  var  vg0  -wi-ao---- 20.00g 

5.格式化

[root@bogon ~]# mke2fs -t ext4 -L shiyan /dev/myvg/mylv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=shiyan
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
327680 inodes, 1310720 blocks
65536 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=1342177280
40 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
 32768, 98304, 163840, 229376, 294912, 819200, 884736

Writing inode tables: done                           
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 37 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.6

6、掛載

[root@bogon ~]# mount /dev/myvg/mylv  /dev/mydata

[root@bogon ~]# mount
/dev/mapper/vg0-root on / type ext4 (rw)
proc on /proc type proc (rw)
sysfs on /sys type sysfs (rw)
devpts on /dev/pts type devpts (rw,gid=5,mode=620)
tmpfs on /dev/shm type tmpfs (rw)
/dev/sda1 on /boot type ext4 (rw)
/dev/mapper/vg0-usr on /usr type ext4 (rw)
/dev/mapper/vg0-var on /var type ext4 (rw)
none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)
/dev/mapper/myvg-mylv on /dev/mydata type ext4 (rw)

掛載OK。

 

4、擴展邏輯卷

1、先確定擴展目標的大小,並確定對應卷組中有足夠的空間可用,目標爲7G

2、擴展物理邊界到7G

[root@bogon ~]# lvextend  -L 7G /dev/myvg/mylv
  Extending logical volume mylv to 7.00 GiB
  Logical volume mylv successfully resized

3、擴展邏輯邊界到7G。

[root@bogon ~]# resize2fs  /dev/myvg/mylv
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/myvg/mylv is mounted on /dev/mydata; on-line resizing required
old desc_blocks = 1, new_desc_blocks = 1
Performing an on-line resize of /dev/myvg/mylv to 1835008 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1835008 blocks long.

3.1、查看LV

[root@bogon ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  mylv myvg -wi-ao----  7.00g                                            
  root vg0  -wi-ao---- 20.00g                                            
  swap vg0  -wi-ao----  2.00g                                            
  usr  vg0  -wi-ao---- 10.00g                                            
  var  vg0  -wi-ao---- 20.00g

擴展OK

 

 五、縮減邏輯卷

  1、先確定縮減後的目標大小;並確保對應的目標邏輯卷大小中有足夠的空間可容納原有所有數據;

[root@bogon ~]# du -sh /dev/mydata
20K /dev/mydata  

2、卸載

[root@bogon ~]# umount /dev/mydata

 

3,並要執行強制檢測

[root@bogon ~]# e2fsck -f ./dev/myvg/mylv
e2fsck 1.41.12 (17-May-2010)
e2fsck: No such file or directory while trying to open ?dev/myvg/mylv

The superblock could not be read or does not describe a correct ext2
filesystem.  If the device is valid and it really contains an ext2
filesystem (and not swap or ufs or something else), then the superblock
is corrupt, and you might try running e2fsck with an alternate superblock:
    e2fsck -b 8193 <device>


   
  4、縮減邏輯邊界
   [root@bogon ~]# resize2fs /dev/myvg/mylv 5G
resize2fs 1.41.12 (17-May-2010)
Resizing the filesystem on /dev/myvg/mylv to 1310720 (4k) blocks.
The filesystem on /dev/myvg/mylv is now 1310720 blocks long. 

 5、縮減物理邊界

[root@bogon ~]# lvreduce -L 5G /dev/myvg/mylv
  Snapshot origin volumes cannot be reduced in size yet.
  Run `lvreduce --help' for more information.   

   6、重新掛載

[root@bogon ~]# mount /dev/myvg/mylv  /dev/mydata

 

 

五、快照

只能對某個邏輯捲進行,  
[root@bogon ~]# lvcreate  -L 512M -n kuaizhao -p r -s /dev/myvg/mylv
  Logical volume "kuaizhao" created

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章