设为首页 收藏本站
查看: 978|回复: 1

[经验分享] LVM逻辑卷的管理--创建LVM、扩容,快照实战

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-8-22 10:58:09 | 显示全部楼层 |阅读模式
如果对于生产环境下的服务器来说,如果存储数据的分区磁盘空间不够了怎么办?

因为如果要把一个分区的内容都拷贝到另一个分区上去,势必要首先卸载掉之前的那个分区,然后*对整个分区进行拷贝,如果服务器上运行着一个重要的服务,比如说WWW或者FTP,其要求是 7*24 小时运行正常的,那么卸载掉分区这是不可想象的,同时如果该分区保存的内容非常非常的多,那么在对分区进行转移时时间可能会耗费很久,所以,这个时候我们就会受到传统磁盘管理的限制,因为其不能够进行动态的磁盘管理。因此,为了解决这个问题,LVM技术就诞生了!!!

LVM(Logicalvolume Manager)是逻辑卷管理的简称。它是Linux环境下对磁盘分区进行管理的一种机制。现在不仅仅是Linux系统上可以使用LVM这种磁盘管理机制,对于其它的类UNIX操作系统,以及windows操作系统都有类似与LVM这种磁盘管理软件。

LVM的工作原理:
它就是通过将底层的物理硬盘封装起来,然后以逻辑卷的方式呈现给上层应用。在LVM中,其通过对底层的硬盘进行封装,当我们对底层的物理硬盘进行操作时,其不再是针对于分区进行操作,而是通过一个叫做逻辑卷的东西来对其进行底层的磁盘管理操作。

LVM最大的特点:
可以对磁盘进行动态管理:因为逻辑卷的大小是可以动态调整的,而且不会丢失现有的数据。
我们如果新增加了硬盘,其也不会改变现有上层的逻辑卷。
作为一个动态磁盘管理机制,逻辑卷技术大大提高了磁盘管理的灵活性!!!

LVM 常用的术语:

PV(Physical Volume),物理卷
PE(Physical Extend),我们的LVM磁盘管理中PE的默认大小是4M大小,其实PE就是我们逻辑卷管理的最基本单位。比如说我有一个400M的硬盘,那么在将其格式化成PV的时候,其实际就是将这块物理硬盘划分成了100个的PE,因为PE默认的大小就是4M。
VG即卷组 作用就是用来装PE的,我们可以把一个或者多个PV加到VG当中
LV(Logical Volume),所以第三步操作就是基于VG来创建我们最终要使用的LV。

创建LVM的基本步骤:
1)物理磁盘被格式化为PV,(空间被划分为一个个的PE) #PV包含PE
(2)不同的PV加入到同一个VG中,(不同PV的PE全部进入到了VG的PE池内) #VG包含PV
(3)LV基于PE创建,(组成LV的PE可能来自不同的物理磁盘) #LV基于PV创建
(4)LV直接可以格式化后挂载使用    #格式化挂载使用
(5)LV的扩充缩减实际上就是增加或减少组成该LV的PE数量,其过程不会丢失原始数据

lvm常用的命令
功能                   PV管理命令            VG管理命令      LV管理命令
scan扫描                    pvscan                         vgscan                  lvscan                        
create创建                  pvcreate                      vgcreate           lvcreate
display显示            pvdisplay                          vgdisplay          lvdisplay
remove移除           pvremove                     vgremove               lvremove                    
extend扩展                                                     vgextend             lvextend      
reduce减少                                       vgreduce           lvreduce

实战
[iyunv@RHEL7 ~]# date
Sat Aug 20 20:39:15 CST 2016

[iyunv@RHEL7 ~]# pvcreate /dev/sdc1 /dev/sdc2
  Physical volume "/dev/sdc1" successfully created
  Physical volume "/dev/sdc2" successfully created
[iyunv@RHEL7 ~]#  
[iyunv@RHEL7 ~]# vgcreate vgtest /dev/sdc1 /dev/sdc2
  Volume group "vgtest" successfully created

创建LV
lvcreate -n 指定逻辑卷名称  -L 指定大小
[iyunv@RHEL7 ~]# lvcreate -n lvtest -L 100M vgtest
  Logical volume "lvtest" created
[iyunv@RHEL7 ~]# ls /dev/vgtest/lvtest
/dev/vgtest/lvtest

格式化LV
[iyunv@RHEL7 ~]# mkfs.xfs  /dev/vgtest/lvtest
meta-data=/dev/vgtest/lvtest     isize=256    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[iyunv@RHEL7 ~]#
挂载
[iyunv@RHEL7 ~]# mkdir /lvdisk
[iyunv@RHEL7 ~]# mount /dev/vgtest/lvtest /lvdisk
[iyunv@RHEL7 ~]# df -h | tail -1
/dev/mapper/vgtest-lvtest   97M  5.2M   92M   6% /lvdisk
[iyunv@RHEL7 ~]#
[iyunv@RHEL7 ~]# cd /lvdisk/
[iyunv@RHEL7 lvdisk]# dd if=/dev/zero of=lv.txt bs=2M count=50
dd: error writing ‘lv.txt’: No space left on device
46+0 records in
45+0 records out
95936512 bytes (96 MB) copied, 0.66916 s, 143 MB/s
[iyunv@RHEL7 lvdisk]# du /lvdisk/lv.txt
93688    /lvdisk/lv.txt
[iyunv@RHEL7 lvdisk]#
查看PV信息
[iyunv@RHEL7 lvdisk]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sdc1
  VG Name               vgtest
  PV Size               95.00 MiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              23
  Free PE               23
  Allocated PE          0
  PV UUID               L6mWDE-0cek-zMWQ-8jiZ-IS1O-bVn0-hGs8Fu
  --- Physical volume ---
  PV Name               /dev/sdc2
  VG Name               vgtest
  PV Size               191.00 MiB / not usable 3.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              47
  Free PE               22
  Allocated PE          25
  PV UUID               cbV60E-zrNB-FV6a-pIFX-JTb2-ZFNo-S3u5jE
查看VG卷信息
[iyunv@RHEL7 lvdisk]# vgdisplay
  --- Volume group ---
  VG Name               rhel
  System ID            
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               10.75 GiB
  PE Size               4.00 MiB
  Total PE              2751
  Alloc PE / Size       2750 / 10.74 GiB
  Free  PE / Size       1 / 4.00 MiB
  VG UUID               hjnlV1-hW10-AaJc-s0eS-mdnh-obfZ-EY2miG
  --- Volume group ---
  VG Name               vgtest
  System ID            
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               280.00 MiB
  PE Size               4.00 MiB
  Total PE              70
  Alloc PE / Size       25 / 100.00 MiB
  Free  PE / Size       45 / 180.00 MiB
  VG UUID               rSEMrZ-IfzS-jsyX-p4Ei-qTPV-ni7V-u7MGLu
VG扩容
[iyunv@RHEL7 lvdisk]# pvcreate /dev/sdb1
[iyunv@RHEL7 lvdisk]# partprobe /dev/sdb
[iyunv@RHEL7 lvdisk]# vgextend vgtest /dev/sdb1
  Volume group "vgtest" successfully extended
[iyunv@RHEL7 lvdisk]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  rhel   lvm2 a--   10.75g  4.00m
  /dev/sdb1  vgtest lvm2 a--   10.00g 10.00g
  /dev/sdc1  vgtest lvm2 a--   92.00m 92.00m
  /dev/sdc2  vgtest lvm2 a--  188.00m 88.00m
LV扩容
[iyunv@RHEL7 lvdisk]# df -hT
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root     xfs       9.8G  3.3G  6.5G  34% /
devtmpfs                  devtmpfs  908M     0  908M   0% /dev
tmpfs                     tmpfs     914M   80K  914M   1% /dev/shm
tmpfs                     tmpfs     914M  8.9M  905M   1% /run
tmpfs                     tmpfs     914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                 xfs       197M   91M  106M  47% /boot
/dev/mapper/vgtest-lvtest xfs       109M   97M   12M  89% /lvdisk
[iyunv@RHEL7 lvdisk]# lvextend -L +100MB /dev/vgtest/lvtest
  Extending logical volume lvtest to 212.00 MiB
  Logical volume lvtest successfully resized
[iyunv@RHEL7 lvdisk]# xfs_growfs /lvdisk/
meta-data=/dev/mapper/vgtest-lvtest isize=256    agcount=5, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=28672, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal               bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 28672 to 54272
[iyunv@RHEL7 lvdisk]# df -hT
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root     xfs       9.8G  3.3G  6.5G  34% /
devtmpfs                  devtmpfs  908M     0  908M   0% /dev
tmpfs                     tmpfs     914M   80K  914M   1% /dev/shm
tmpfs                     tmpfs     914M  8.9M  905M   1% /run
tmpfs                     tmpfs     914M     0  914M   0% /sys/fs/cgroup
/dev/sda1                 xfs       197M   91M  106M  47% /boot
/dev/mapper/vgtest-lvtest xfs       209M   97M  112M  47% /lvdisk
移除VG
[iyunv@RHEL7 lvdisk]# vgreduce vgtest /dev/sdb1
  Removed "/dev/sdb1" from volume group "vgtest"
[iyunv@RHEL7 lvdisk]# vgs
  VG     #PV #LV #SN Attr   VSize   VFree
  rhel     1   2   0 wz--n-  10.75g  4.00m
  vgtest   2   1   0 wz--n- 280.00m 68.00m
[iyunv@RHEL7 lvdisk]# pvs
  PV         VG     Fmt  Attr PSize   PFree
  /dev/sda2  rhel   lvm2 a--   10.75g  4.00m
  /dev/sdb1         lvm2 a--   10.00g 10.00g
  /dev/sdc1  vgtest lvm2 a--   92.00m 68.00m
  /dev/sdc2  vgtest lvm2 a--  188.00m     0
删除LVM:先删除lv,再删除vg,再删除pv
[iyunv@RHEL7 lvdisk]# umount /lvdisk/
umount: /lvdisk: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[iyunv@RHEL7 lvdisk]# cd
[iyunv@RHEL7 ~]# umount /lvdisk/
[iyunv@RHEL7 ~]# lvremove /dev/vgtest/lvtest
Do you really want to remove active logical volume lvtest? [y/n]: y
  Logical volume "lvtest" successfully removed
[iyunv@RHEL7 ~]# vgremove vgtest
  Volume group "vgtest" successfully removed
[iyunv@RHEL7 ~]# pvremove /dev/sdc1 /dev/sdc2
  Labels on physical volume "/dev/sdc1" successfully wiped
  Labels on physical volume "/dev/sdc2" successfully wiped
LVM快照
先准备一个LV
[iyunv@RHEL7 ~]# pvcreate /dev/sdc
  Physical volume /dev/sdc not found
  Device /dev/sdc not found (or ignored by filtering).
[iyunv@RHEL7 ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created
[iyunv@RHEL7 ~]# vgcreate vgtest /dev/sdc1
  Volume group "vgtest" successfully created
[iyunv@RHEL7 ~]# lvcreate -n lvtest -L 50M vgtest
  Rounding up size to full physical extent 52.00 MiB
  Logical volume "lvtest" created
[iyunv@RHEL7 ~]#
格式化LV
[iyunv@RHEL7 ~]# mkfs.xfs /dev/vgtest/lvtest
meta-data=/dev/vgtest/lvtest     isize=256    agcount=2, agsize=6656 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=0
data     =                       bsize=4096   blocks=13312, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=0
log      =internal log           bsize=4096   blocks=853, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[iyunv@RHEL7 ~]# mkdir /lvdisk
[iyunv@RHEL7 ~]# mount /dev/vgtest/lvtest /lvdisk/
[iyunv@RHEL7 ~]# df -h | tail -1
/dev/mapper/vgtest-lvtest   49M  2.7M   46M   6% /lvdisk
创建一个文件来测试
[iyunv@RHEL7 ~]# cd /lvdisk/
[iyunv@RHEL7 lvdisk]# touch test.txt
[iyunv@RHEL7 lvdisk]# ls
test.txt
[iyunv@RHEL7 lvdisk]# vgs
  VG     #PV #LV #SN Attr   VSize  VFree
  rhel     1   2   0 wz--n- 10.75g  4.00m
  vgtest   1   1   0 wz--n- 92.00m 40.00m
[iyunv@RHEL7 lvdisk]#


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-261363-1-1.html 上篇帖子: linux目录及文件管理, bash重定向 下篇帖子: 用iptables搭建一套强大的安全防护盾
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表