设为首页 收藏本站
查看: 466|回复: 0

[经验分享] LINUX LVM 硬盘管理及LVM的扩容

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-16 10:00:24 | 显示全部楼层 |阅读模式
一、LVM简介
       LVM 是 Logical Volume Manager(逻辑卷管理)的简写,LVM将一个或多个硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,当硬盘的空间不够使用的时候,可以继续将其它的硬盘的分区加入其中,这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。与传统的磁盘与分区相比,LVM为计算机提供了更高层次的磁盘存储。它使系统管理员可以更方便的为应用与用户分配存储空间。在LVM管理下的存储卷可以按需要随时改变大小与移除(可能需对文件系统工具进行升级)
                             lvm物理与(pv、vg、lv)逻辑对照

wKioL1PFONPyu0XYAADGDnF83RY509.jpg    wKiom1PFOQjSf37WAAD8vH0t0vI924.jpg


二、 LVM基本术语
       PV
       物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
       VG
       卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区(逻辑卷),LVM卷组由一个或多个物理卷组成。

      LV
       逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
       PV:是物理的磁盘分区
      VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG中、可以将VG理解为一个仓库或者是几个大的硬盘。
      LV:也就是从VG中划分的逻辑分区

三、 安装LVM
      首先确定系统中是否安装了lvm工具,没有安装的话要安装之后才能使用,否则没有命了功能支持,我的是centos6.5默认安装了。如果输入命令没有提示没有查询到就要安装lvm程序啦。


[iyunv@localhost ~]# rpm -qa | grep lvm    查询是否安装lvm
mesa-private-llvm-3.3-0.3.rc3.el6.x86_64
lvm2-libs-2.02.100-8.el6.x86_64
lvm2-2.02.100-8.el6.x86_64
四、实验
    实验是划分三个3g的硬盘,演示pv、vg、lv、的创建、扩容、删除
1、添加磁盘用虚拟机添加一个20g的硬盘,此处省略
2、创建分区
[iyunv@localhost ~]# fdisk /dev/sdb

Command (m for help): n    创建主分区
Command action
   e   extended       逻辑分区
   p   primary partition (1-4)
p
Partition number (1-4): 1    第一个分区
First cylinder (1-2610, default 1):  开始块
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +3G   划分3g容量

Command (m for help): t     修改文件类型
Selected partition 1
Hex code (type L to list codes): 8e   文件类型(Linux LVM)
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): p     查看分区

Disk /dev/sdb: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 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: 0xba762e8d


  Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         393     3156741   8e  Linux LVM
按此照做分区结果如下
                          分区结果
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1         393     3156741   8e  Linux LVM
/dev/sdb2             394         786     3156772+  8e  Linux LVM
/dev/sdb3             787        1179     3156772+  8e  Linux LVM    主分区
/dev/sdb4            1180        2610    11494507+   5  Extended
/dev/sdb5            1180        1572     3156741   8e  Linux LVM    逻辑分区  
3、查看所创建分区系统是否识别到、没有识别到要 partx -a /dev/sdbx直到识别到或者重启系统。

[iyunv@localhost ~]# cat /proc/partitions    查看创建分区
major minor  #blocks  name

   8        0   83886080 sda
   8        1     204800 sda1
   8        2   62914560 sda2
   8        3      39163 sda3
   8        4          1 sda4
   8        5      40131 sda5
   8       16   20971520 sdb
   8       17    3156741 sdb1
   8       18    3156772 sdb2
   8       19    3156772 sdb3
   8       20          1 sdb4
   8       21    3156741 sdb5
4、创建pv

[iyunv@localhost ~]# pvcreate /dev/sdb{2,3,5}  创建2,3,5三块磁盘的pv
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created
  Physical volume "/dev/sdb5" successfully created
5、创建vg
[iyunv@localhost ~]# vgcreate dd /dev/sdb2   创建名为dd的vg
  Volume group "dd" successfully created
[iyunv@localhost ~]# vgcreate dd /dev/sdb3   增加 vg dd的容量
  A volume group called dd already exists.
[iyunv@localhost ~]# vgcreate ee /dev/sdb3   创建名为ee的vg
  Volume group "ee" successfully created

[iyunv@localhost ~]# vgextend dd /dev/sdb5   给dd这个vg增加容量
Volume group "dd" successfully extended
root@localhost ~]# vgs       查看创建的vg
  VG   #PV #LV #SN Attr   VSize  VFree
dd     2   0   0 wz--n-  6.02g 6.02g      创建后dd ee的大小
  ee     1   0   0 wz--n-  3.01g 3.01g
  vg0    1   4   0 wz--n- 59.99g 7.99g
6、创建lv
[iyunv@localhost ~]# lvcreate -L 2G -n yy dd  在dd这个卷组中创建名为yy2g的lv
Logical volume "zz" created
root@localhost ~]# lvs        查看lv
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
yy   dd   -wi-a-----  2.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         
[iyunv@localhost ~]# lvcreate -L 2G -n zz dd   在dd这个卷组中创建名为zz2g的lv
  Logical volume "zz" created
[iyunv@localhost ~]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
yy   dd   -wi-a-----  2.00g                                             
  zz   dd   -wi-a-----  2.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
7、格式化         
[iyunv@localhost ~]# mkfs -t ext4 /dev/dd/zz  格式化lv
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
First data block=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
Writing inode tables: done                           
Creating journal (16384 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 38 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
8、挂载
[iyunv@localhost ~]# mount /dev/dd/zz /tmp/mnt      挂载lv
[iyunv@localhost ~]# cd /tmp/mnt
[iyunv@localhost mnt]# ls -a
.  ..  lost+found
[iyunv@localhost mnt]# cd /
                           至此lv就可以分配给用户使用啦
四、扩展逻辑卷

1、先确定扩展的目标大小、并确保对应的卷组中有足够的空闲空间可用;
2、扩展物理边界
3、扩展逻辑边界
[iyunv@localhost /]# lvextend -L 4G /dev/dd/zz   对zz物理边界进行在线扩容为4g
  Extending logical volume zz to 4.00 GiB
  Logical volume zz successfully resized
[iyunv@localhost /]# resize2fs  /dev/dd/zz       对zz逻辑边界进行在线扩容为4g
[iyunv@localhost /]# lvs
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  yy   dd   -wi-a-----  2.00g                                             
zz   dd   -wi-ao----  4.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
root@localhost ~]# 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/dd-zz on /tmp/mnt type ext4 (rw)    查看挂载信息
五、缩小逻辑卷
缩减很危险!!!!
缩减要离线
1、先确定缩减后的目标大小;并确保对应的目标逻辑卷大小中有足够的空间可容纳原有所有数据;
2、先强制检测文件系统,并要执行强制检测
3、缩减逻辑边界
4、缩减物理边界
[iyunv@localhost ~]# umount /tmp/mnt    卸载
[iyunv@localhost ~]# e2fsck -f /dev/dd/zz  强制检测文件系统,并要执行强制检测
e2fsck 1.41.12 (17-May-2010)
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/dd/zz: 11/131072 files (0.0% non-contiguous), 25388/524288 blocks 信息显示
[iyunv@localhost ~]# lvreduce -L 3G /dev/dd/zz  离线缩减lv zz为3g
  WARNING: Reducing active logical volume to 3.00 GiB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce zz? [y/n]: y   提示
  Reducing logical volume zz to 3.00 GiB
  Logical volume zz successfully resized
[iyunv@localhost ~]# lvs   查看缩减后的信息
  LV   VG   Attr       LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  yy   dd   -wi-a-----  2.00g                                             
zz   dd   -wi-a-----  3.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



运维网声明 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.iyunv.com/thread-22172-1-1.html 上篇帖子: linux学习之路之IP地址和路由的配置 下篇帖子: Linux Vmware Nat端口映射配置 LINUX
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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