LVM磁盘管理技术案例讲解-阿里云开发者社区

开发者社区> 开发与运维> 正文
登录阅读全文

LVM磁盘管理技术案例讲解

简介:
LVM是什么?
恩,全称就是"逻辑盘卷管理" 英文全称是"Logical Volume Manager".
干吗用的?
恩,当我们硬盘空间不够时候,如C盘(举个通俗例子,linux没C,D概念之说),如果没有LVM管理话,可能我们要备份数据,然后格式化,重新添加分区.岂不是很麻烦,不过如果有了LVM技术的话,就不存在这样的问题了.所以,用在服务器上是很方便的一门技术了.关键是,还不花钱.
 
网上有很多LVM知识解说的文章,说的比我详细多了,在此粘贴两经典文章的网址:
 
不过,鉴于实践是检验成果的唯一标准,我也就自己重新认真的操作了一遍,可比看人家文章更容易理解了.
 
先复习下LVM里面的基本必须记住的专业术语.偶会写上自己的理解的.FYI.
 
1: PV (Physical Volume) 中文名:物理卷 相关命令: pvcreate  pvdisplay pvscan
    定义:  物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数
    个人理解:  PV不是分区, 我们使用pvcreate来将一个或多个物理分区创造成PV.这是做LVM的第一步.
 
2: VG (volume group) 中文名: 卷组 相关命令: vgcreate vgdisplay  vgscan
    定义: LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
     个人理解: 只有通过PV将分区变成物理卷后, 我们才能将这变成的一个或多个物理卷组合成一个卷组.就相当于,将几个班的教室合并成一个班样(vgcreate).以后,就可以随意分配学生了(LV).当然,前提就是将这些学生pvcreate成同一个年级(PV)了.
 
3:  LV (logical volume ) 中文名: 逻辑卷 相关命令: lvcreate lvdisplay lvscan
     定义: LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)
     个人理解:  我们可以通过lvcreate在VG中划分出某个区域.然后通过mount到某个文件夹中,这样,偶们就可以使用这个区域了.注意哦,是在这个卷组中划出一块地出来使用,当然了,如果这块的太少了,我们可以很轻松的把别人的地挪到自己这来.地里面的庄稼当然不会少了.如果觉得地太多了,割出部分出去,庄稼会自动腾到没割的地方去.这就是LVM的好处了.
 
OK,下面来看下我的操作过程了,其它的概念大家可以去看下别人写的文章.很详细的.
 
假设我有一块空闲硬盘,硬盘符是/dev/sdb,在里面分了三个分区,分别是 /dev/sdb1  /dev/sdb2  /dev/sdb3 三个都分别是100M.看下
[root@localhost /]# fdisk /dev/sdb
Command (m for help): p
Disk /dev/sdb: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1          13      104391   8e  Linux LVM    #看到Id是8e哦.
/dev/sdb2              14          26      104422+  8e  Linux LVM
/dev/sdb3              27          39      104422+  8e  Linux LVM
 
好得,下一步,建立物理卷PV
[root@localhost /]# pvcreate /dev/sdb1 /dev/sdb2 /dev/sdb3
  Physical volume "/dev/sdb1" successfully created
  Physical volume "/dev/sdb2" successfully created
  Physical volume "/dev/sdb3" successfully created

 
创建VG卷组
[root@localhost /]# vgscan   #一般我们初始建立卷组时都要先scan下.
  Reading all physical volumes.  This may take a while...
  Couldn't find device with uuid '6T3gUb-fFdj-MMUL-wUTN-qdXG-8iEP-KsWbgb'.
  Couldn't find all physical volumes for volume group VolGroup00.
  Couldn't find device with uuid '6T3gUb-fFdj-MMUL-wUTN-qdXG-8iEP-KsWbgb'.
  Couldn't find all physical volumes for volume group VolGroup00.
  Volume group "VolGroup00" not found
[root@localhost /]# vgcreate vg0 /dev/sdb1 /dev/sdb2  #建立卷组,名字叫:vg0
  Volume group "vg0" successfully created
[root@localhost /]#
[root@localhost /]# vgdisplay vg0  # 查看下卷组vg0得情况
  --- Volume group ---
  VG Name               vg0
  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               200.00 MB
  PE Size               4.00 MB   #默认PE 都是4M, 通过 vgcreate -s 8M 可修改.
  Total PE              50
  Alloc PE / Size       0 / 0
  Free  PE / Size       50 / 200.00 MB
  VG UUID               WKRPJT-MI6G-vGk9-vne2-Gfg2-sAry-llsF7B
请输入内容
 
OK,下面是建立逻辑卷了,在这不我添加了名字为data 的逻辑卷了. 注意:-L 和-l的区别,前面是根据大小来的,后面的是根据块数来的,也就是几个PE.
[root@localhost /]# lvcreate -n data -L 10M vg0  #建立名为data,大小10M
  /dev/cdrom: open failed: Read-only file system
  Rounding up size to full physical extent 12.00 MB
  Logical volume "data" created
[root@localhost /]# lvdisplay  #查看下逻辑卷情况
  --- Logical volume ---
  LV Name                /dev/vg0/data
  VG Name                vg0
  LV UUID                qrC9H4-iHWi-Si4m-hN7G-x6Cm-yupr-aXRBVi
  LV Write Access        read/write
  LV Status              available
  # open                 0
  LV Size                12.00 MB #为什么是12M呢?我不是输入10M大小的吗?
  Current LE             3           就当是个问题考考大家了,
  Segments               1
  Allocation             inherit
  Read ahead sectors     0
  Block device           253:2
  Couldn't find device with uuid '6T3gUb-fFdj-MMUL-wUTN-qdXG-8iEP-KsWbgb'.
  Couldn't find all physical volumes for volume group VolGroup00.
  Couldn't find device with uuid '6T3gUb-fFdj-MMUL-wUTN-qdXG-8iEP-KsWbgb'.
  Couldn't find all physical volumes for volume group VolGroup00.
  Volume group "VolGroup00" not found
[root@localhost /]# mkfs.ext3 /dev/vg0/data #格式化成ext3格式.
mke2fs 1.35 (28-Feb-2004)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
3072 inodes, 12288 blocks
614 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=12582912
2 block groups
8192 blocks per group, 8192 fragments per group
1536 inodes per group
Superblock backups stored on blocks:
        8193
Writing inode tables: done
Creating journal (1024 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 35 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost /]# mount /dev/vg0/data /mnt/  #mount到/mnt文件夹
[root@localhost /]# cp /etc/services /mnt/  #拷贝个文件进去试下
[root@localhost /]# ls /mnt/  #看下,里面已经有个services文件了.成功.
lost+found  services
[root@localhost /]# umount /mnt/  
[root@localhost /]# lvextend -L +10M /dev/vg0/data  #扩展逻辑卷大小
  /dev/cdrom: open failed: Read-only file system
  Rounding up size to full physical extent 12.00 MB
  Extending logical volume data to 24.00 MB
  Logical volume data successfully resized

 
OK,试验就做到这了,是不是很容易啊,其它比如物理卷扩展大小,删除等操作其实已经大同小异了.



本文转自 wuqingying 51CTO博客,原文链接:http://blog.51cto.com/carywu/36503,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享: