从RHEL5开始,RHEL有了新的分区工具,parted,最大的亮点就是可以分2TB以上的分区,而且操作简单,个人感觉比fdisk好使
现在用一块硬盘/dev/sdb 使用parted分区,并且创建LVM
一。创建分区
1。先rpm -qf /sbin/parted
parted-2.1-13.el6.x86_64
如果没有就先安装
对/dev/sdb进行分区
parted /dev/sdb
GNU Parted 2.1
使用 /dev/sdb
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted)
进入parted对话框,输入help得到帮助
2。进行分区,使用mkpart创建分区,先创建一个主分区,大小为2g
mkpart primary 1024K 2048G
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 1024kB 2048MB 2047MB primary
3。 现在开始创建一个扩展分区
mkpart extended 2048M 8590M
4。 成功后创建逻辑分区
mkpart logical 2048M 8590M
5。成功后,需要更改分区类型,改为LVM
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 1024kB 2048MB 2047MB primary
2 2049MB 8590MB 6541MB extended lba
5 2049MB 8590MB 6541MB logical
6。使用toggle 更改硬盘类型
toggle 1 lvm
toggle 5 lvm
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 8590MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Number Start End Size Type File system 标志
1 1024kB 2048MB 2047MB primary lvm
2 2049MB 8590MB 6541MB extended lba
5 2049MB 8590MB 6541MB logical lvm
7。现在退出parted,然后分区就创建完毕了。这时候要么重启,然后使分区表生效,或者使用命令partprobe将分区表注入到内核中
[root@station ~]# fdisk -cul /dev/sdb
Disk /dev/sdb: 8589 MB, 8589934592 bytes
255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00042564
Device Boot Start End Blocks Id System
/dev/sdb1 2000 4000000 1999000+ 8e Linux LVM
/dev/sdb2 4001792 16777215 6387712 f W95 Ext'd (LBA)
/dev/sdb5 4001793 16777215 6387711+ 8e Linux LVM
二。创建完分区后,就可以创建PV了,PV应该是physical volume的缩写,物理卷
1。使用命令pvcreate创建物理卷
pvcreate /dev/sdb1
pvcreate /dev/sdb5
2。 创建VG(卷组),名称为rhel,并将PV包含在VG中,通过包含物理卷,可以为系统提供逻辑的划分空间
vgcreate rhel /dev/sdb1 /dev/sdb5
也可以通过vgextend 来向rhel组添加物理卷
vgextend rhel /dev/sdb6
3。 创建完卷组后,就可以创建逻辑卷了,这逻辑可真够复杂的,都已经三层了
lvcreate -n lvname -L 2G rhel
参数-n表示逻辑卷的名称,-L表示大小,后面是卷组名称
可以通过lvdisplay /dev/rhel来查看所创建的逻辑卷
4。 格式化逻辑卷为ext4格式,并添加挂载点
mkfs.ext4 /dev/rhel/lvname
mkdir /data
mount /dev/rhel/lvname /data
blkid /dev/rhel/lvname
echo "UUID=d8d7a0bd-0d3e-4dbb-a7bc-ad5f4529ae9b /data ext4 defaults 1 2" >>/etc/fstab
df -h /data
[root@station ~]# df -h /data
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/rhel-lvname
2.0G 67M 1.9G 4% /data
5。 现在一个逻辑卷就创建好了。并挂载到了/data目录下,大小为2G
三。扩展逻辑卷和ext4
逻辑卷的好处就是可以扩展硬盘空间,当分配给一个挂载点的硬盘空间不足时,可以动态的加载硬盘容量,这个感觉跟微软的动态磁盘类似,不过微软的动态磁盘就不说什么了。这个东西有利,但是安全性无法保障,例如重装系统的时候,如果硬盘是动态磁盘,就准备哭吧。不知道RHEL对LVM的动态支持性怎么样,这个还有待于以后的实验。
首先,扩展逻辑卷,可以在线扩容。具体步骤如下:
1。先确保卷组的可扩容容量,防止扩容容量超出卷组可用容量,如果卷组容量不足,可以通过vgextend来扩展
vgdisplay rhel
2。扩展逻辑卷,例如,要给逻辑卷lvname扩展2G
lvresize -L +2G /dev/rhel/lvname
运行lvdisplay rhel查看,可以看到已经扩展成4G
[root@station ~]# lvdisplay rhel
--- Logical volume ---
LV Name /dev/rhel/lvname
VG Name rhel
LV UUID tDIQwm-dCQ8-8GWO-1SGb-2vyx-M2tS-534s4t
LV Write Access read/write
LV Status available
# open 1
LV Size 4.00 GiB
Current LE 1024
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:2
但是挂载点/data却仍然是2GB
[root@station ~]# df -h /data
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/rhel-lvname
2.0G 67M 1.9G 4% /data
3。使用resize2fs来扩展挂载点的文件系统
resize2fs /dev/rhel/lvname
做完后,再查看/data,可以看到已经扩展
[root@station ~]# df -h /data
文件系统 容量 已用 可用 已用%% 挂载点
/dev/mapper/rhel-lvname
4.0G 68M 3.7G 2% /data
其次,可以缩减容量
在缩减容量的时候,需要将硬盘离线,并且需要备份数据。
缩减容量的顺序相反,先要从文件系统缩减容量,然后再从逻辑卷缩减容量
1。解除挂载
umount /data
2。 执行fsck验证所有文件系统数据结构
fsck -f /dev/rhel/lvname
3。 缩减文件系统,将大小调整为3G,也就是减少1G
resize2fs /dev/rhel/lvname 3G
4. 缩减逻辑卷(LV),将大小调整为3G
lvreduce /dev/rhel/lvname -L -1G
[root@station ~]# lvreduce /dev/rhel/lvname -L -1G
WARNING: Reducing active logical volume to 3.00 GiB
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce lvname? [y/n]: y
Reducing logical volume lvname to 3.00 GiB
Logical volume lvname successfully resized
这个比较讨厌,不能跟resize的容量对应起来。
5。重新挂载
mount -a
这样,一个LVM的创建,增加与删减的操作就完成了。
刚才看了一篇文章
http://hi.baidu.com/suofang/blog/item/02ce933dd837b614bba1676c.html
对LVM的逻辑结构讲的比较清楚,总算弄明白了PE个数与PE大小之间的关系,所以在扩展的时候,还可以通过PE的个数来扩展,这样的话,可以利用所有的空间或者部分的空间,比较欣赏这点。
像扩展空间就可以使用
lvextend -l +100 /dev/rhel/lvname
剩下的步骤一样,每个PE在创建vg的定义,默认是4m,可以修改成最大16GB,乖乖,真够大的,一个卷组里面最大的PE个数是2的16次方,65536个。这样灵活的组合,就可以管理容量巨大的卷组。非常犀利啊
参考:http://blog.sina.com.cn/s/blog_53737d110100x8wg.html