注意:任何磁盘的操作有可能损坏里面数据,请提前备份数据,切记!切记!切记!


0x00:前言.

  在Linux使用过程中,发现一个文件很大,比如5G,但是有两块物理磁盘一个剩下4G,一个剩3G,磁盘空间不够,这样肯定不能放进去。如果把5G文件分割了是可以放进去,但是如果有很多文件呢!这时候就可以用LVM来帮我们来管理文件是放到哪个磁盘里。

  注意:LVM用于单块硬盘小于2TB的分区,如果超过2TB用part分区,不建议用LVM会识别不了。


0x01:文本对照。

  物理磁盘:即你购买来能拿在手里的那一块磁盘。

  PV:物理卷(physical volume)。物理磁盘创建成普通磁盘83后,将类型修改成8e时,其成为LVM磁盘系统,也就是我们说的PV。

  VG:逻辑卷组(Volume Group)。是将一个个的PV放到一个组里统一管理。

  LV:逻辑卷(logical volume)。也就是从VG中划分的逻辑分区,在这上我们可以当成普通磁盘去使用,新建一个文件或文件夹。


0x02:版本说明.

  1)VMware Workstation 12 Pro 12.5.7 build-5813279

  2)CentOS release 6.9 (Final)


0x03:实验环境搭建。

  1)安装VM虚拟机以及CentOS系统安装网上很多,略。

  2)在VM里创建模拟物理磁盘,虚拟机里会自动识别。

    80e995808d00d2045199e70aef8e7093.jpg-wh_

    dfce7b4fe004cc3a1fd17ec7266039a3.jpg-wh_

    257c40eec2197bbca2f162dc31af5603.jpg-wh_

    因为做实验节省时间,所以我们将3个磁盘只分了100M、200M、300M,

    从容量上我们也可以直观看到在操作的磁盘。

    0c6edb23609485286b331dba8c94d4eb.jpg-wh_

    注意文件名不要重复

    69ec7ee0264f695b8396bc93e78f3895.jpg-wh_

    另外2个创建是一样的,重复上面步骤即可。

    7a8713ce553f42e636899eb29be5bb5f.jpg-wh_

    在系统中用命令查看,多出几块未分配的磁盘。

     # fdisk -l

    018c09c90831e367af3a4843acc6a8b6.jpg-wh_

    728404152bdbb3d5a071cc56431ccccf.jpg-wh_


   3)首先,把磁盘格式化成普通磁盘。

    #fdisk /dev/sda

    91d04b4896be6ddfc71d52cf0e44b6b3.jpg-wh_

    8f9e661129ad132d80e6dac166942165.jpg-wh_


0x04:安装LVM,及创建。

    将一块普通磁盘类型修改成8e时,其已经成为LVM磁盘系统里,也就是我们说的PV。

    磁盘创建好了,但是LVM并不是系统自带的,尤其是2.6.9以下,需要我们自己安装。

    查看系统是否安装。

    rpm -qa | gre lvm

    并查看内核版本。

    uname -a

    系统显示没有安装,我们用命令安装。

    yum -y install lvm2

   42dd1bb6e40e5fe93ec990ae7052542e.jpg-wh_


   1)创建PV。

   LVM提示已经安装完成,用pvscan命令提示没有发现PV(physical volumes)

   77c5798889d34fd3efe0d501388794d8.jpg-wh_

   创建PV,并重新扫描,发现了一个新的PV。

   # pvcreate /dev/sdb1
   # pvscan

   4be4ff7b101c2ee5b239e2079ab875c8.jpg-wh_

   显示PV信息,因为只创建一个PV,所以只有一个。

   # pvdisplay

   bd3ecd33c44806dce454e620ff7e2ef5.jpg-wh_

   好了,现在将一块普通磁盘改变成LVM里最基本物理磁盘。下面我们来创建VG(磁盘管理组)。


   2)创建VG(卷组),来管理PV。

   # vgscan  //因为之前没有创建过VG,所以扫描没有显示。
   # vgcreate vgdata /dev/sdb1   //创建vgdata并将/dev/sdb1加入
   #  vgcreate vgdata /dev/sdb1  -s 8M //-s是指定PE大小,默认是4M
   # vgdisplay  //显示VG信息

   0a879a76181530787c9570b0a897af17.jpg-wh_

   再次扫描,发现上面创建的“vgdata”卷组VG了。

   438cec71f6b3ff59ad8904a1c372701e.jpg-wh_

   

   3)有了卷组我们就可以创建LV,LV是我们真正用来写数据的,比如新建一个文本等。

   # lvscan //扫描LV,之前没有建立过LV,什么也没显示
   # lvcreate -L 100M -n lvData vgdata //创建LV,-L 指定LV大小为100M,-n LV名字方便区分,
   vgdata 加入到vgdata组,上面创建的。
   # lvdisplay

   a553f67742486881717eec1f5098dfec.jpg-wh_

   4)格式化LV及挂载

   # mkfs.ext4 /dev/vgdata/lvData  //格式化lvData为ext4格式。
   #  mkdir /LVM  //创建挂载点
   #  mount /dev/vgdata/lvData  /LVM  //挂载到LVM下
   #  df -h  显示挂载成功100M空间系统占用1.6M还要卷组占用一些,实际占用2%。

   9f669b42b605bec08fc7e50499fc2a5d.jpg-wh_

   好了,到此一个完整的LVM就创建完了。

   

0x05:开机自动挂载。

   挂载点的磁盘,在重启后就会丢失,需要将配置写入/etc/fstab,让系统自动挂载。

    # echo "/dev/vgdata/lvData  /LVM    ext4    defaults 0 0" >> /etc/fstab

   e5cd0b0aaf8f2947dd168411a7374014.jpg-wh_

   

   

参考文章:

https://www.cnblogs.com/gaojun/archive/2012/08/22/2650229.html

http://dreamfire.blog.51cto.com/418026/1084729/

https://jingyan.baidu.com/article/76a7e409bd923dfc3b6e153d.html

https://jingyan.baidu.com/article/5553fa82e9d9c365a239343d.html

https://jingyan.baidu.com/article/59a015e3a65909f79488653d.html

https://jingyan.baidu.com/article/49711c6148ed72fa441b7c3d.html

https://jingyan.baidu.com/article/0eb457e5057ad603f1a9053e.html

https://jingyan.baidu.com/article/48b558e35708ce7f38c09a3e.html

https://www.centos.bz/2012/02/installation-and-usage-of-lvm/