基本概念:

磁盘、分区、物理卷【物理部分】

卷组【中间部分】

逻辑卷、文件系统【虚拟化后可控制部分】

 

磁盘信息查看

fdisk -l

SATA磁盘,使用fdisk -l

如果有两块磁盘,会显示

sda

sdb

如果有更多,依次a-z

fdisk -l

除了显示硬盘分区,同时显示逻辑卷信息,逻辑卷以vg_开头

 

df -h

查看文件系统及其挂载点

文件系统可以是逻辑卷,也可以直接为物理分区

 

/dev/mapper/vg_hxserver-lv_root     50G   23G   25G  49% /

tmpfs                               7.8G     0  7.8G   0% /dev/shm

/dev/sda1                           485M   37M  423M   8% /boot

/dev/mapper/vg_hxserver-lv_home     218G  233M  207G   1% /home

 

以上/dv/sda1是物理分区,vg_是逻辑卷,tmpfs某设备名称

cat /etc/fstab看到更多的设备挂载信息

但是使用df -h只显示一部分与存贮相关类型的信息,如ext4、swap、tmpfs

 

以centos6.3安装为例,安装完成后会自动

创建一个物理卷 /dev/sda2(属于卷组vg_hostname) pvdispaly 可以查看物理卷

创建一个卷组 /vg_hostname(hostname是机器名) vgdisplay可以查看卷组

创建三个逻辑卷 /dev/vg_hxserver/lv_root

               /dev/vg_hxserver/lv_home

               /dev/vg_hxserver/lv_swap

 

以上部分是从系统默认安装后能查看到的信息

 

下面两个案例来熟悉更多关于【磁盘 分区 物理卷 卷组 逻辑卷 文件系统】知识

案例1:新增磁盘并把新磁盘虚拟化成逻辑卷,把文件系统/home挂载到这个新逻辑卷。

 

1、fdisk -l

可以看到新磁盘/dev/sdb(如果之前只有sda)

 

2、fdisk /dev/sdb

   进入fdisk操作界面

   进入fdisk操作界面,这里涉及到linux分区相关知识见http://www.jb51.net/LINUXjishu/57192.html

   总结性的一句话:主分区不超出4个,也可以分成1-3个主分区加1个扩展分区。扩展分区本身是不可用的,

   需要划分成若干逻辑分区后使用。分区还是需要合理,以免剩余出磁盘被浪费。

   这里创建一个最简单的Linux LVM类型的主分区

   command:n

   p

   e

   键入p

   一直按回车,就创建出整个磁盘空间的主分区

   键入t

   输入8e即对应的Linux LVM类型的物理卷

   键入w退出

   新建分区完成

   fdisk -l

   可以看到新建分区sdb1

   

3、pvdisplay查看当前的物理卷

   把分区sdb1建成物理卷

   pvcreate /dev/sdb1【物理卷名】 /dev/sdb1【分区路径】

   pvdisplay 看到/dev/sdb1物理卷还不属于任务卷组

   vgs或vgdisplay 查看已创建的卷组,如果要新建卷组使用vgcreate

   把新建的物理分区,分配到卷组/dev/vg_dbcentos6

   vgextend /dev/vg_dbcentos6 /dev/sdb1

   vgs可以看到vg_dbcentos63扩展了容量,VFreee是剩下可用容量,如果显示4.00G,

      接下来创建逻辑卷时,可输入4G,不能超出,当然也不要浪费掉。

   lvcreate -L 4G -n lv_home vg_dbcentos6

   lvs或lsdisplay或fdisk -l都能看到新创建的lv_home

   需要注意的是,这里有两个规则一是取名lv_home,会自动生成逻辑卷的路径为

   /dev/vg_dbcentos6/lv_home

   生成Disk设备映射/dev/mapper/vg_dbcentos6-lv_home【文件系统的挂载点】

   cat /etc/fstab 可以看到当前文件系统格式,有ext3、ext4等,比方说查看到文件系统是ext4

   接下来格式花文件系统

   mkfs.ext4 /dev/mapper/vg_dbcentos6-lv_home

   挂载文件系统

   mount /dev/mapper/vg_dbcentos6-lv_home /home

   查看文件系统

   df【可以看到多出了/home挂载点】

   机器启动后能自动挂载

   vi /etc/fstab

   fstab共6列,第1列表示设备 第2列表示挂载点 第3列表示设备类型 第4列表示参数 第5列参数表示隔几天

   备份 第6列表示启动时检测优先级别

   reboot 看是否自动挂载

   

案例2:centos6.3默认安装,/home的挂载设备对应的逻辑卷非常大,但是/挂载的逻辑卷空间较小,需要减小/home逻辑卷,加大/对应的逻辑卷。

   umount /home【首先必须卸下挂载点,umount时相关设备必须是空闲的,但是像/及/root有些系统服务无法被 终止,也就无法umount,因此像/ /root这些挂载点最好安装的时候最好就有所规划,但是我们可以让他扩大还是没有问题】

   在umount过程中如果有设备占用情况可使用

   fuser -m -k /home终止相关进程,再次umount /home成功

   df 看不到 /home挂载点

   必须先检测设备映射

   e2fsck -f /dev/mapper/vg_dbcentos6-lv_home 

   减小/home大小,原有4G,减小到1G

   resize2fs /dev/mapper/vg_dbcentos6-lv_home 1G

   重新挂载

   mount /dev/mapper/vg_dbcentos6-lv_home /home

   df -h 看到/home只剩1G了

   以上只是减少了文件设备的大小,还要进一步减小对应逻辑卷大小

   lvresize -L 1G /dev/mapper/vg_dbcentos6-lv_home【此过程会提示可能丢数据,如果有必要,请先备份

   /home下数据在做操作】

   lvresize -L +3GM /dev/mapper/vg_dbcentos6-lv_root【lv_root逻辑卷新增3G】

   resize2fs /dev/mapper/vg_dbcentos6-lv_root 【这个命令不带参数,表示把多出来的容量都加到当前文件系统】

   df -h【看到容量增加了】

   总结一下案例2的过程,先umount、接下来efsck -f、接下来resize2fs要减小的文件系统、mount文件系统、

   lvresize要减小的逻辑卷、lvresize要增大的逻辑卷、resize2fs要增大的文件系统。

   

   

 

菜鸟,直接拔下新增磁盘引发的错误

    新增磁盘不会有系统文件,因此不致于系统无法启动

    1、如果新增的磁盘,通过分区、物理卷、加到卷组、逻辑卷后,如果新的逻辑卷被加到lv_root,

    也就是root逻辑卷后。如果不事先做移除命令,事后再想移除会比较麻烦,甚至无法移除这些unknown device

    2、如果新增逻辑卷有自动挂载点,也需要删除挂载点后才能拔下硬盘,否则启动后会提示使用root以安全模式进入

    

    那么这两个问题分别怎么解决呢?

    第2个问题相对简单,以root进入后

    mount -o remount,rw /【这个命令让root可以修改/etc/fstab,否则无法修改】

    vi /etc/fstab 删除已经拔掉磁盘相关的挂载点信息

    reboot【重起后能正常进入】

    

    第一个问题

    方法一、就是再次把磁盘插回去,然后把对应的逻辑卷删除、把物理卷从卷组里删除并删除物理卷

    方法二、如果找不回对应的磁盘,若逻辑卷不是被分配到root,可以直接删除特理卷,这时用pvdisplay会发现有一个unkonwn device

            可以使用vgreduce --removemissing --force volumname,可以发现unkown device被移降

            但是如果是在lv_root由于存放并正在使用大量的系统级内容和服务,将无法移除此设备,因此用磁盘扩展

            lv_root一定要谨慎,在移除磁盘的时候一定要先移除对应的逻辑卷、物理卷从卷组里移除并移除物理卷。以免产生垃圾unkown

            device。另外即使不是在lv_root下,也有可能说内容被占用,这个可以使用fuser -m -k /mnt/a【/mnt/a指你要移除的逻辑卷

            对应的挂载点的正在运行的服务】,然后umount /mnt/a,最后vgreduce --removemissing --force volumname。