在虚拟机下使用Ubuntu会遇到磁盘空间不够使用的情况,服务器上多个多个磁盘,如何合理的划分磁盘的分区是一件头疼的事情。在Ubuntu14.04的安装过程中发现有LVM选项,网上搜了一下,发现是这个情况的完美解决方案。LVM是 Logical Volume Manager(逻辑卷管理)的简写,它由Heinz Mauelshagen在Linux 2.4内核上实现。LVM将一个或多个物理硬盘的分区在逻辑上集合,相当于一个大硬盘来使用,然后文件系统在这个逻辑大硬盘分区。相当于在物理磁盘和文件系统之间增加了一层。当硬盘空间不够的时候,可以继续将其它的硬盘的分区加入其中,或者某一个分区比如 /home 不够用的时候,可以调整其它分区大小增大/home 。这样可以实现磁盘空间的动态管理,相对于普通的磁盘分区有很大的灵活性。
LVM基本概念:
http://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html#_Toc333352427
LVM是在磁盘分区和文件系统之间添加的一个逻辑层,来为文件系统屏蔽下层磁盘分区布局,提供一个抽象的盘卷,在盘卷上建立文件系统。首先我们讨论以下几个LVM术语:
物理存储介质(The physical media):这里指系统的存储设备:硬盘,如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元。
物理卷(physical volume):物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group):LVM卷组类似于非LVM系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
逻辑卷(logical volume):LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
PE(physical extent):每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
LE(logical extent):逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。
简单来说就是:
PV:是物理的磁盘分区
VG:LVM中的物理的磁盘分区,也就是PV,必须加入VG,可以将VG理解为一个仓库或者是几个大的硬盘。
LV:也就是从VG中划分的逻辑分区
二 安装Ubuntu14.04
首先规划好文件系统分区,虚拟机下新建三个虚拟磁盘,一个文件系统分区 root,交换分区swap 和home 分区。安装的时候选择LVM选项。安装完以后显示,安装到root分区:
现在看一下pv lv 和vg 分区的情况:
huan@ubuntu14:~$ sudo pvscan
PV /dev/sda5 VG ubuntu-vg lvm2 [19.76 GiB / 20.00 MiB free]
Total: 1 [19.76 GiB] / in use: 1 [19.76 GiB] / in no VG: 0 [0 ]
huan@ubuntu14:~$ sudo lvscan
ACTIVE '/dev/ubuntu-vg/root' [18.74 GiB] inherit
ACTIVE '/dev/ubuntu-vg/swap_1' [1020.00 MiB] inherit
huan@ubuntu14:~$ sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "ubuntu-vg" using metadata type lvm2
查看具体的硬盘分区情况:
huan@ubuntu14:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 21.5 GB, 21474836480 bytes
255 heads, 63 sectors/track, 2610 cylinders, total 41943040 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: 0x000c07ad
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 499711 248832 83 Linux
/dev/sda2 501758 41940991 20719617 5 Extended
/dev/sda5 501760 41940991 20719616 8e Linux LVM
huan@ubuntu14:~$ sudo fdisk -l /dev/sdb
Disk /dev/sdb: 214.7 GB, 214748364800 bytes
255 heads, 63 sectors/track, 26108 cylinders, total 419430400 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: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
huan@ubuntu14:~$ sudo fdisk -l /dev/sdc
Disk /dev/sdc: 2147 MB, 2147483648 bytes
255 heads, 63 sectors/track, 261 cylinders, total 4194304 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: 0x00000000
Disk /dev/sdc doesn't contain a valid partition table
根据硬盘分区方案,文件系统和home 分别挂载在不同的分区上,这样系统和工作目录分开,系统出了问题重装的时候不会影响工作目录。文件系统已经使用了lvm的分区方案,安装在'/dev/ubuntu-vg/root VG上。
home目录要安装在另外一个VG上。
1.首先要创建一个PV。
huan@ubuntu14:~$ sudo pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
huan@ubuntu14:~$ sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda5
VG Name ubuntu-vg
PV Size 19.76 GiB / not usable 2.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 5058
Free PE 5
Allocated PE 5053
PV UUID 3Hl1V3-XR2S-e8wa-fUm8-xjXY-PtBV-fF3iaT
"/dev/sdb" is a new physical volume of "200.00 GiB"
--- NEW Physical volume ---
PV Name /dev/sdb
VG Name
PV Size 200.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID 8Qs4tm-74fv-2Kj6-axfZ-9ag2-7MXg-U3wzaY
二创建VG
huan@ubuntu14:~$ sudo vgcreate ubuntu-home /dev/sdb
Volume group "ubuntu-home" successfully created
huan@ubuntu14:~$ sudo pvscan
PV /dev/sdb VG ubuntu-home lvm2 [200.00 GiB / 200.00 GiB free]
PV /dev/sda5 VG ubuntu-vg lvm2 [19.76 GiB / 20.00 MiB free]
Total: 2 [219.75 GiB] / in use: 2 [219.75 GiB] / in no VG: 0 [0 ]
现在有了两个逻辑硬盘VG, ubuntu-vg ,ubuntu-home。
ubuntu-home 要挂载在home目录的。
三创建LV
huan@ubuntu14:~$ sudo lvcreate -l 20480 -n home ubuntu-home
Logical volume "home" created
-l 指定LV大小为20480M, -n home LV名字为home
huan@ubuntu14:~$ sudo lvscan
ACTIVE '/dev/ubuntu-home/home' [80.00 GiB] inherit
ACTIVE '/dev/ubuntu-vg/root' [18.74 GiB] inherit
ACTIVE '/dev/ubuntu-vg/swap_1' [1020.00 MiB] inherit
我们要把整个ubuntu-home VG 分配到home分区,ubuntu-home VG空间都分配到home LV ,但是现在只分配了一部分。LVM动态调整分区大小的优势就体验出来了,
huan@ubuntu14:~$ sudo lvresize -L +100G /dev/ubuntu-home/home
Extending logical volume home to 190.00 GiB
Logical volume home successfully resized
四格式化分区:
huan@ubuntu14:~$ sudo mkfs.ext4 /dev/ubuntu-home/home
mke2fs 1.42.9 (4-Feb-2014)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
13107200 inodes, 52422656 blocks
2621132 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1600 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks):
done
Writing superblocks and filesystem accounting information: done
五挂载分区
sudo mount -t ext4 /dev/ubuntu-home/home /media/home
同步home目录
sudo rsync -av /home/* /media/home
修改开启挂载项
# home mount
/dev/ubuntu-home/home /home ext4 defaults 0 2
OK 大功告成。
阅读(3087) | 评论(0) | 转发(0) |