现在的位置: 首页 > 综合 > 正文

利用lvm增加linux根分区的容量

2013年09月14日 ⁄ 综合 ⁄ 共 4186字 ⁄ 字号 评论关闭

如果安装linux时,在选择分区设置时,选择默认,会使用lvm管理。系统运行一段时间后,发现根分区磁盘容量不够,需要扩容。该如何做呢?

使用lvm技术可以扩大根分区,不破坏分区表。

先查看一下我们现在的磁盘分区占用情况:
[root@linux2 ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       27G  5.1G   20G  21% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm

可以看到 / 分区有27G。下面示例增大这个分区。

1、首先新加一块磁盘,连接至主机。开机,进入系统。使用root登录,运行fdisk,将新加的磁盘分区。我们这里假设将全部磁盘容量只分一个区,分区为/dev/sdb1;

2、初始化磁盘给LVM应用
    pvcreate /dev/sdb1

3、将新创建的磁盘加入到逻辑卷组VolGroup00, 扩展VG(VolGroup):
    vgextend /dev/VolGroup00 /dev/sdb1
    运行vgdisplay ,查看扩展后的VG,如果显示容量增加,表示,VG扩展成功;

4、将逻辑卷组VolGroup00 的逻辑卷LogVol00的容量增加10G,扩展LV(LogVol):
    lvextend -L + n(M,或G) /dev/VolGroup00/LogVol00
    如: lvextend -L +10G /dev/VolGroup00/LogVol00
    就是把 LogVol00 增加10G
    增加的数值中不能有小数点,如果遇到10.3G这样的,可以分两次增加扩展,先增加10G,再增加300M
    运行lvdisplay,查看扩展后的lv(LogVol),如果显示容量增加,表示,LV扩展成功;(在这里就是/分区增加成功)

5、最后将磁盘分区扩容至37G
    resize2fs /dev/VolGroup00/LogVol00 37G

执行完成后,我们再运行df查看分区情况:

[root@linux2 ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/mapper/VolGroup00-LogVol00
                       37G  5.1G   30G  15% /
/dev/sda1              99M   12M   82M  13% /boot
tmpfs                 252M     0  252M   0% /dev/shm

可以看到,现在/分区已经是37G了。使用LVM动态调整磁盘空间就是这么简单。



---------------------------------------------------------------------------------------------------------------------------------------------------------





前几天要在DELL2950上搭建web环境,这台服务器预装RHEL5。但是只划分了很小的几个分区,还有几百个G没有使用。 /usr/local分区也只划分了8G,所以决定要扩充逻辑卷。但是在使用lvextend命令时遇到了些问题。

在网上搜索了些资料,做了下总结。

由于当时没有记录下操作过程,所以这里借bemperor 兄弟的帖子说明下问题。内容如下:

[root@localhost   ~]#   df 
文件系统                               1K-块                 已用           可用           已用%   挂载点 
/dev/mapper/VolGroup00-LogVol00 
                                              2920216       2479008         290476     90%   / 
/dev/sda1                               101086           11785           84082     13%   /boot 
tmpfs                                       257760                   0         257760       0%   /dev/shm 

 

[root@localhost   ~]#   fdisk   -l 

Disk   /dev/sda:   10.7   GB,   10737418240   bytes 
255   heads,   63   sectors/track,   1305   cylinders 
Units   =   cylinders   of   16065   *   512   =   8225280   bytes 

      Device   Boot             Start                   End             Blocks       Id     System 
/dev/sda1       *                       1                     13             104391       83     Linux 
/dev/sda2                             14                   522           4088542+     8e     Linux   LVM 

 

[root@localhost   ~]#   lvextend   -L   +2G   /dev/VolGroup00/LogVol00 
    Extending   logical   volume   LogVol00   to   4.88   GB 
    Insufficient   free   space:   64   extents   needed,   but   only   0   available 

    上面的这个例子可以看出sda这个设备至少还有一多半的空间没有使用。因为sda2分区是从14-522柱面,而整个硬盘一共有1305个柱面,523-1305都是自由空间。

    但是直接用extend命令扩展分区是不行的,会提示没有剩余空间。只是因为当初划分磁盘空间的时候逻辑卷组VolGroup00的大小已经固定了。卷组的大小确定后是不能更改的。只有通过往卷组中添加物理卷来扩大卷组的空间。而物理卷要由新的 分区/磁盘 来创建。

   因为概念比较多,所以听起来有些乱。总结一下思路:

   利用剩下的自由空间 创建一个物理分区-->将这个物理分区装换为物理卷-->把这个物理卷添加到要扩展的卷组中-->然后才能用extend命令扩展此卷组中的逻辑卷 。。。还是有些乱。。。

结合上面的例子的具体操作步骤为:

 
1.首先要再创建一个物理分区  

(使用fdisk   /dev/sda,选择n来创建一个新的分区比如sda3,主分区还是逻辑分区对此例子无所谓)

     完成后需要重新启动。

可以用fdisk -l命令来查看已有分区

 

[root@localhost   ~]#   fdisk   -l 

Disk   /dev/sda:   10.7   GB,   10737418240   bytes 
255   heads,   63   sectors/track,   1305   cylinders 
Units   =   cylinders   of   16065   *   512   =   8225280   bytes 

      Device   Boot             Start                   End             Blocks       Id     System 
/dev/sda1       *                       1                     13             104391       83     Linux 
/dev/sda2                             14                   522           4088542+     8e     Linux   LVM 

用fdisk  /dev/sda命令,选择‘n’创建新分区,主分区,逻辑分区对这个例子来说都可以,‘w’保存。

重启机器生效。


2.接下来创建sda3分区   建为物理卷   (pvcreate   /dev/sda3)

/dev/sda3这个路径可以参照 pvdisplay这个命令中sda1的路径,一般都是在dev下。


3.为卷组VolGroup00添加新的物理卷sda3来增大卷组的容量   (vgextend   VolGroup00   /dev/sda3)

用vgdisplay来查看卷组名称。


4.现在才能扩展逻辑卷的大小   (lvextend   -L   +2G   /dev/VolGroup00/LogVol00)

用lvdisplay查看逻辑卷绝对路径


*5.最后要使用resizefs2命令重新加载逻辑卷的大小才能生效。   (resize2fs   /dev/VolGroup00/LogVol00)


如果不用这个命令的话,你会发现用df -h命令查看扩展的逻辑卷大小还是原来的值,没有发生变化。即使重启也不会变,所以一定要执行 resize2fs命令。




抱歉!评论已关闭.