Chinaunix首页 | 论坛 | 博客
  • 博客访问: 455148
  • 博文数量: 89
  • 博客积分: 1126
  • 博客等级: 少尉
  • 技术积分: 1432
  • 用 户 组: 普通用户
  • 注册时间: 2011-04-11 23:37
文章分类

全部博文(89)

文章存档

2016年(6)

2015年(2)

2014年(1)

2013年(3)

2012年(23)

2011年(54)

分类: LINUX

2015-01-02 17:39:50

       在虚拟机下使用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 大功告成。













阅读(2969) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~