linux逻辑卷管理LVM

    LVM(logical volume manager,逻辑卷管理)是linux中对磁盘分区的管理机制。当linux用户在安装linux操作系统的是否没有正确划分分区,或在之后对linux的使用中的对某个分区的空间有更大需求时,可以使用LVM方便地管理磁盘分区。LVM还可以跨越分区对磁盘空间进行调整。

    创建物理卷PV(Physical Volume)

            PV相当于磁盘的分区,是LVM的基本存储单位

            实战创建PV:

[root@bogon ~]# fdisk -l      #先查看分区表,确定在那个分区上创建PV
[root@bogon ~]# fdisk /dev/sdb     #使用fdisk的交互命令,划分分区
欢迎使用 fdisk (util-linux 2.23.2)。
 
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
 
 
命令(输入 m 获取帮助):n
分区号 (1-8,默认 1):
起始 扇区 (0-209712510,默认 0):
Last 扇区 or +扇区 or +size{K,M,G,T,P} (0-209712510,默认 209712510):+10G
分区 1 已设置为 Linux native 类型,大小设为 9.5 GiB
 
命令(输入 m 获取帮助):n
分区号 (2-8,默认 2):
起始 扇区 (20000000-209712510,默认 20000000):
Last 扇区 or +扇区 or +size{K,M,G,T,P} (20000925-209712510,默认 209712510):+10G
分区 2 已设置为 Linux native 类型,大小设为 9.5 GiB
 
命令(输入 m 获取帮助):n
分区号 (3-8,默认 3):
起始 扇区 (20000000-209712510,默认 20000000):40000005
It is highly recommended that the third partition covers the whole disk
and is of type `Whole disk'
Last 扇区 or +扇区 or +size{K,M,G,T,P} (40001850-209712510,默认 209712510):+10G
分区 3 已设置为 Linux native 类型,大小设为 9.5 GiB
 
命令(输入 m 获取帮助):w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@bogon ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
 
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
 
 
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):1
Hex 代码(输入 L 列出所有代码):L
 
 0  未分配           4  SunOS usr        8  SunOS home      82  Linux swap     
 1  启动             5  Whole disk       9  SunOS alt secto 83  Linux native   
 2  SunOS root       6  SunOS stand      a  SunOS cachefs   8e  Linux LVM      
 3  SunOS swap       7  SunOS var        b  SunOS reserved  fd  Linux raid 自动
Hex 代码(输入 L 列出所有代码):8e    #使用8e Linux LVM
已将分区“Linux native”的类型更改为“Linux LVM”
 
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):2
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux native”的类型更改为“Linux LVM”
 
命令(输入 m 获取帮助):t
分区号 (1-3,默认 3):
Hex 代码(输入 L 列出所有代码):8e
Consider leaving partition 3 as Whole disk (5),
as SunOS/Solaris expects it and even Linux likes it.
 
已将分区“Linux native”的类型更改为“Linux LVM”
 
命令(输入 m 获取帮助):p
 
Disk /dev/sdb (Sun disk label): 255 heads, 63 sectors, 13054 cylinders
Units = 扇区 of 1 * 512 bytes
 
   设备 Flag    Start       End    Blocks   Id  System
/dev/sdb1             0  20000000  10000000   8e  Linux LVM
/dev/sdb2      20000925  40000000   9999537+  8e  Linux LVM
/dev/sdb3      40001850  60000000   9999075   8e  Linux LVM
 
命令(输入 m 获取帮助):w
The partition table has been altered!
 
Calling ioctl() to re-read partition table.
正在同步磁盘。
 
[root@bogon ~]# cat /proc/partitions
major minor  #blocks  name
 
   8        0   20971520 sda
   8        1     512000 sda1
   8        2    2048000 sda2
   8        3    1257472 sda3
   8        4          1 sda4
   8        5   17149952 sda5
   8       16  104857600 sdb
   8       17   10000000 sdb1
   8       18    9999537 sdb2
   8       19    9999075 sdb3
  11        0    1048575 sr0
[root@bogon ~]# pvcreate /dev/sdb{2,3}   #将sdb2,sdb3分区创建PV
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created
[root@bogon ~]# pvs
  PV         VG   Fmt  Attr PSize PFree
  /dev/sdb2       lvm2 ---  9.54g 9.54g
  /dev/sdb3       lvm2 ---  9.54g 9.54g
[root@bogon ~]# pvdisplay          #查看pv详细信息#
  "/dev/sdb2" is a new physical volume of "9.54 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb2
  VG Name               
  PV Size               9.54 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0      #此时PE为0
  Free PE               0
  Allocated PE          0
  PV UUID               qT3omM-3t1n-uYAq-fo9x-B5qz-iDiN-JWYsw7
   
  "/dev/sdb3" is a new physical volume of "9.54 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb3
  VG Name               
  PV Size               9.54 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0    
  Free PE               0
  Allocated PE          0
  PV UUID               sKmGAq-yZ2o-aiRe-15lp-nXhI-0bjf-ODFM9H
   
[root@bogon ~]# pvscan
  PV /dev/sdb2         lvm2 [9.54 GiB]
  PV /dev/sdb3         lvm2 [9.54 GiB]
  Total: 2 [19.07 GiB] / in use: 0 [0   ] / in no VG: 2 [19.07 GiB]

创建PV小结:

    pvcreat:创建PV
    pvremove:清除PV中的数据
    pvscan:查看PV的信息
    pvdisplay:常看PV的详细信息
    pvs:查看PV的简单信息
    pvmove: pvmove - move physical extents

   卷组VG(Volume Group)

    卷组相当于磁盘,由一个或多个PV组成,在卷组上可以创建多个逻辑卷LV

     实战创建VG

[root@bogon ~]# vgcreate myvg /dev/sdb{2,3}
  Volume group "myvg" successfully created
[root@bogon ~]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   2   0   0 wz--n- 19.07g 19.07g
[root@bogon ~]# vgdisplay myvg
  --- Volume group ---
  VG Name               myvg
  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               19.07 GiB
  PE Size               4.00 MiB
  Total PE              4881
  Alloc PE / Size       0 / 0   
  Free  PE / Size       4881 / 19.07 GiB
  VG UUID               24YF6v-kHXI-NUSH-l0cy-sHpG-3rdM-mEFl40
   
[root@bogon ~]# pvdisplay /dev/sdb2
  --- Physical volume ---
  PV Name               /dev/sdb2
  VG Name               myvg
  PV Size               9.54 GiB / not usable 1.17 MiB
  Allocatable           yes 
  PE Size               4.00 MiB
  Total PE              2441      #PE不为0
  Free PE               2441
  Allocated PE          0
  PV UUID

创建VG小结:

PE物理块(Physical Extent)是组成PV的基本单元
vgcreat vg_name pv_name:创建VG
    -s #:指定PE大小,默认为4M。由实验现象可见,创建了VG后PE的值就不为0了。
vgremove 
vgextend:扩展VG,即添加PV
vgreduce:移除PV,使用前pv的数据要先pvmove /pvname,移除数据
vgs
vgdisplay
vgscan

    逻辑卷LV(Logical Volume)

相当于磁盘分区,LV建立在VG之上。文件系统建立在LV上。

   实战创建LV:

[root@bogon ~]# lvcreate -L 2G -n testlv myvg
  Logical volume "testlv" created.
[root@bogon ~]# lvs
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv myvg -wi-a----- 2.00g                                                    
[root@bogon ~]# lvdisplay /dev/myvg/testlv
  --- Logical volume ---
  LV Path                /dev/myvg/testlv
  LV Name                testlv
  VG Name                myvg
  LV UUID                n1Pm9L-2Ek1-nMB8-EA1k-QERy-sTP7-1myA3O
  LV Write Access        read/write
  LV Creation host, time bogon, 2015-10-13 21:37:51 +0800
  LV Status              available
  # open                 0
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

#     挂载     #
[root@bogon ~]# mke2fs -j /dev/myvg/testlv  
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912
 
Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 
 
[root@bogon ~]# mount /dev/myvg/testlv /mnt
[root@bogon ~]# ls /mnt
lost+found    # 挂载成功
[root@bogon ~]# mount
##此处省略##
/dev/sda5 on / type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda1 on /boot type ext4 (rw,relatime,seclabel,data=ordered)
/dev/sda2 on /home type ext4 (rw,relatime,seclabel,data=ordered)
/dev/mapper/myvg-testlv on /mnt type ext3 (rw,relatime,seclabel,data=ordered)  # 实际挂载的是 /dev/mapper 
 
[root@bogon ~]# ll /dev/mapper
总用量 0
crw-------. 1 root root 10, 236 10月 13 20:23 control
lrwxrwxrwx. 1 root root       7 10月 13 21:39 myvg-testlv -> ../dm-0
[root@bogon ~]# ll /dev/myvg  
总用量 0
lrwxrwxrwx. 1 root root 7 10月 13 21:39 testlv -> ../dm-0

创建LV小结:

lvcreate -n LV_NAME -L #G  VG_NAME
lvremove:移除lv,事先要卸载(umount /mnt)
lvextend
lvreduce
lvs
lvdisplay
ll /dev/mapper:查看成功与否
ll /dev/myvg

    LVM管理

扩展逻辑卷

    我们在使用文件系统之前要先划分分区,即创建物理边界,然后才能在分区中创建文件系统。所以要扩展文件系统时要先扩展物理边界,然后才扩展逻辑卷。扩展逻辑卷一般不会损坏原有数据。

    实战扩展逻辑卷:

[root@bogon ~]# df -lh
文件系统                 容量  已用  可用 已用% 挂载点
/dev/sda5                 16G  2.4G   13G   16% /
devtmpfs                 482M     0  482M    0% /dev
tmpfs                    490M     0  490M    0% /dev/shm
tmpfs                    490M  6.8M  484M    2% /run
tmpfs                    490M     0  490M    0% /sys/fs/cgroup
/dev/sda1                477M   79M  370M   18% /boot
/dev/sda2                1.9G  6.4M  1.8G    1% /home
/dev/mapper/myvg-testlv  2.0G  3.1M  1.9G    1% /users      
[root@bogon ~]# lvextend -L 5G /dev/mapper/myvg-testlv     #扩展逻辑卷  
  Size of logical volume myvg/testlv changed from 2.00 GiB (512 extents) to 5.00 GiB (1280 extents).
  Logical volume testlv successfully resized
[root@bogon ~]# df -lh 
文件系统                 容量  已用  可用 已用% 挂载点
/dev/sda5                 16G  2.4G   13G   16% /
devtmpfs                 482M     0  482M    0% /dev
tmpfs                    490M     0  490M    0% /dev/shm
tmpfs                    490M  6.8M  484M    2% /run
tmpfs                    490M     0  490M    0% /sys/fs/cgroup
/dev/sda1                477M   79M  370M   18% /boot
/dev/sda2                1.9G  6.4M  1.8G    1% /home
/dev/mapper/myvg-testlv  2.0G  3.1M  1.9G    1% /users  #扩展完,逻辑卷的大小还是不变
[root@bogon ~]# lvs
  LV     VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv myvg -wi-ao---- 5.00g   #实际上已经扩展完层                                                 
[root@bogon ~]# resize2fs -p /dev/myvg/testlv 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/myvg/testlv is mounted on /users; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/myvg/testlv is now 1310720 blocks long.
 
[root@bogon ~]# df -lh
文件系统                 容量  已用  可用 已用% 挂载点
/dev/sda5                 16G  2.4G   13G   16% /
devtmpfs                 482M     0  482M    0% /dev
tmpfs                    490M     0  490M    0% /dev/shm
tmpfs                    490M  6.8M  484M    2% /run
tmpfs                    490M     0  490M    0% /sys/fs/cgroup
/dev/sda1                477M   79M  370M   18% /boot
/dev/sda2                1.9G  6.4M  1.8G    1% /home
/dev/mapper/myvg-testlv  4.9G  4.1M  4.7G    1% /users
[root@bogon ~]# cd /users
[root@bogon users]# ls
123  lost+found   #可以测试事先放在里面的文件123还是可用的

扩展逻辑卷小结:

lvextend -L # /LV_PATH
    -L + #  /LV   =原+#
    -L  #   扩展到#
resize2fs
  resize2fs -p /LV    直接扩展到物理边界一样大
  resize2fs -p /LV  # 直接扩展到#

缩减逻辑卷

    跟扩展逻辑卷相反,缩减文件系统时应先缩减缩减逻辑卷。

    缩减逻辑卷小结:

df -lh #查看已用空间,防止缩减太多
umount /mnt 
mount
e2fsck -f /dev/myvg/testlv     #强制检查,确保文件系统处于一致性状态
resize2fs /dev/myvg/testlv 3G
lvreduce -L 3G /dev/myvg/testlv
mount -a 
mount
df -lh

创建快照卷

    快照卷可以为linux系统提供简单的数据备份,快照卷为了保护数据的完整性,一般设置为只读的,只能创建在与原卷同一卷组内。

     实战创建快照卷:

[root@bogon users]# lvcreate -L 1G -n testlv-snap -s -p r /dev/myvg/testlv  #说明:users目录下挂载着一个LV
  Logical volume "testlv-snap" created.
[root@bogon users]# lvs
  LV          VG   Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  testlv      myvg owi-aos--- 5.00g                                                    
  testlv-snap myvg sri-a-s--- 1.00g      testlv 0.00                                   
[root@bogon users]# mount /dev/
[root@bogon users]# mount /dev/myvg/testlv-snap  /mnt
mount: /dev/mapper/myvg-testlv--snap 写保护,将以只读方式挂载
[root@bogon mnt]# tar -jcf /tmp/users.tar.bz2 /mnt/inittab 
tar: 从成员名中删除开头的“/”
[root@bogon mnt]# ls /tmp
[root@bogon users]# cd /mnt
[root@bogon mnt]# ls
123 lost+found   #此时对文件如inittab的修改都不会保存到快照中
[root@bogon ~]# umount /mnt
[root@bogon ~]# lvremove /dev/myvg/testlv-snap 
Do you really want to remove active logical volume testlv-snap? [y/n]:y
# 生命周期结束
 
[root@bogon ~]# cd /users
[root@bogon users]# rm 123
rm:是否删除普通文件 "123"?y
[root@bogon users]# tar xf /tmp/users.tar.bz2 -C ./       # -C 指定解压目录
[root@bogon users]# ls
lost+found  123

创建快照卷小结:

lvcreate -L # n SLVNAME -p  r /lvname 
    -s  创建快照卷
    -p r|w  指定权限,一般不指定r
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值