注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

牧笔临风

己有能,勿自私!

 
 
 

日志

 
 
 
 

lvm 创建扩容及删除  

2010-07-30 12:00:21|  分类: linux服务篇 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
lvm就是logical volume manager,即逻辑卷管理,它的好处是可以动态扩展且不影响原有数据。
创建lvm总的思路是:
  • 建立分区,当然你也可以将一块硬盘作为一个分区,用多块硬盘建立lvm
  • 建立物理卷
  • 建立卷组
  • 建立逻辑卷
创建分区我不再多说,请参照fdisk 磁盘分区,假设我们已经有了分区/dev/sda5、/dev/sda6、 /dev/sda7、 /dev/sda8 各100M。
创建物理卷:
pvcreate /dev/sda{5,6,7}
如果看到类似于  Physical volume "/dev/sdaX" successfully created说明创建成功,
查看物理卷的命令:
pvdisplay 这时就会将我们系统中存在的所有的物理卷都列出来,也可以使用pvdisplay /dev/sda5来查看/dev/sda5的情况,看到的结果如下:

  --- Physical volume ---

  PV Name               /dev/sda5

  VG Name               vg0

  PV Size               101.94 MB / not usable 1.94 MB

  Allocatable           yes (but full)

  PE Size (KByte)       4096

  Total PE              25

  Free PE               0

  Allocated PE          25

  PV UUID               5A9Ybp-V2ty-c2M3-yz1o-pkSs-B0AZ-JEre3Q


创建卷组:

vgcreate vg0 /dev/sda{5,6,7}

看到 Volume group "vg0" successfully created说明创建成功,创建成功后会在/dev/下生成一个目录/dev/vg0

可以通过vgdisplay来查询所有卷组的信息,也可通过指定卷组的名称来查询指定卷组的信息 vgdisplay vgname。下面是vgdisplay显示的内容:

  --- Volume group ---

  VG Name               vg0

  System ID

  Format                lvm2

  Metadata Areas        3

  Metadata Sequence No  2

  VG Access             read/write

  VG Status             resizable

  MAX LV                0

  Cur LV                1

  Open LV               0

  Max PV                0

  Cur PV                3

  Act PV                3

  VG Size               300.00 MB

  PE Size               4.00 MB

  Total PE              75

  Alloc PE / Size       75 / 300.00 MB

  Free  PE / Size       0 / 0

  VG UUID               om0Emq-0B4W-bCWq-dz87-4RQd-Ro4a-3bRlBr


创建逻辑卷:

lvcreate  -L/-l -n lv0 vg0

这里

lvcreate           是系统创建逻辑卷的的命令

-L                    直接就指定分区的大小

-l                     是指指定PE的数量

-n                     逻辑卷的名字

lv0                逻辑卷的名字

vg0               用哪个卷组


lvcreate -L 300M -n lv0 vg0

创建成功后会在/dev/vg0里发现一个文件lv0

通过lvdisplay来查询逻辑卷的情况:

  --- Logical volume ---

  LV Name                /dev/vg0/lv0

  VG Name                vg0

  LV UUID                uuf0vR-YLtR-Atkw-84L6-Sech-JMUP-hmjRt6

  LV Write Access        read/write

  LV Status              available

  # open                 0

  LV Size                300.00 MB

  Current LE             75

  Segments               3

  Allocation             inherit

  Read ahead sectors     auto

  - currently set to     256

  Block device           253:0


对于创建lvm来说我们已经完成了所有操作,但是对于实际应用,我们还需要做如下操作才能真正使用即:

  • 格式化逻辑卷
  • 挂载逻辑卷
格式华逻辑卷,这里我们指定它的label为/data,以后挂载到/data下(这里有一个小技巧就是将label的名字与将来挂载点的名字,这样在将来出来磁盘问题的时候就可以很容易的看到这个逻辑卷是挂在哪里了)

格式化逻辑卷

mkfs.ext3 -L /data /dev/vg0/lv0

可以通过blkid查看label是否设置成功(blkid主要是功能是相看UUID,UUID是分区的唯一标识):

/dev/sda3: LABEL="SWAP-sda3" TYPE="swap"

/dev/sda2: LABEL="/" UUID="54839d02-5630-4773-8241-2ac1ceadee38" TYPE="ext3"

/dev/sda1: LABEL="/boot" UUID="bf3d6fb1-f0e7-4a75-bbe5-c843103d7a88" TYPE="ext3"

/dev/mapper/vg0-lv0: LABEL="/data" UUID="60bc841b-8108-47bd-944e-77f88a36ca8e" SEC_TYPE="ext2" TYPE="ext3"

也可以通过e2label来查看(e2label是可以设置和查看label,一旦设置将永久生效):

e2label /dev/vg0/lv0

/data

挂载逻辑卷:
mount LABEL=/data /data
这时再用mount查看一下:
mount | grep data
/dev/mapper/vg0-lv0 on /data type ext3 (rw)
至此,我们就可以使用逻辑卷了。只到这里不能显示逻辑卷的优势,它的主要优势在于动态扩展。

扩容(增加容量):
当数据写满逻辑卷的时候,我们既不想破坏原来的数据,又想能让现有的空间大一点儿,这时就会用到逻辑卷的扩容,扩容的原则是先查看卷组看是否还有空间,如果没有需要进行卷组的扩容,卷组扩容需要进行物理卷的扩容,对于物理卷的扩容既可以是分区也可以是一块新的硬盘。对于上例,我已经把卷组的所有空间都分区了逻辑卷,需要从物理卷开始扩容。

先进行物理卷扩容
pvcreate /dev/sda8
再扩容卷组:
vgextend vg0 /dev/sda8
接下来扩容逻辑卷:
lvextend -L 400M /+100M /dev/vg0/lv0

-L  400M           指定扩展逻辑卷的大小为400M

+100M                当前基础上,增加100M

在上面的各阶段中都可以使用pvdisplay, vgdisplay, lvdisplay查看相应的情况,来看一下lvdisplay的情况:
  --- Logical volume ---
  LV Name                /dev/vg0/lv0
  VG Name                vg0
  LV UUID                uuf0vR-YLtR-Atkw-84L6-Sech-JMUP-hmjRt6
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                400.00 MB
  Current LE             100
  Segments               4
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0
这时逻辑卷已经扩充到400M,再来看一下/data的大小,看不是真的已经扩充到400M了,df -h

文件系统              容量  已用 可用 已用% 挂载点

/dev/sda2             4.9G  1.7G  3.0G  37% /

/dev/sda1              99M   12M   83M  12% /boot

tmpfs                 252M     0  252M   0% /dev/shm

/dev/mapper/vg0-lv0   291M   11M  266M   4% /data

为何没有扩充到400M呢?这是因为我们还没有把这种变化写入超级块中,需要如下命令来解决这个问题

resize2fs /dev/vg0/lv0

resize2fs 1.39 (29-May-2006)

Filesystem at /dev/vg0/lv0 is mounted on /data; on-line resizing required

Performing an on-line resize of /dev/vg0/lv0 to 409600 (1k) blocks.

The filesystem on /dev/vg0/lv0 is now 409600 blocks long.

再查看一下:df -h

文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2             4.9G  1.7G  3.0G  37% /
/dev/sda1              99M   12M   83M  12% /boot
tmpfs                 252M     0  252M   0% /dev/shm
/dev/mapper/vg0-lv0   388M   11M  358M   3% /data
上面已经完成扩容了。

扩容(减小容量):
这个相对比较简单,比如说我们想把逻辑卷减少到200M,需要做如下几步:
  • 卸载逻辑卷 umount /data
  • 检查磁盘(至于为什么,我现在还不是很清楚) e2fsck -f  /dev/vg0/lv0
  • resize2fs  /dev/vg0/lv0 200M
  • lvreduce -L 200M /dev/vg0/lv0
对于卷组可以使用vgreduce

删除lvm总的思路是:
  • 卸载逻辑卷 umount /data
  • 删除逻辑卷 lvremove /dev/vg0/lv0
  • 删除卷组 vgremove vg0
  • 删除物理卷 pvremove /dev/sda{5,6,7,8}
创建和删除有一点像盖房子和拆房子。

  评论这张
 
阅读(387)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017