Linux---disk, partitions, PV, LV

It's hard for me to understand the whole disk management in Linux at first. But this page helps me a lot.

http://m.blog.itpub.net/29500582/viewspace-1806993/


基本概念:
磁盘、分区、物理卷【物理部分】
卷组【中间部分】
逻辑卷、文件系统【虚拟化后可控制部分】

1. pv vg lv  物理  卷组 逻辑
pvdisplay
vgdisplay
lvdisplay
pvs
vgs
lvs

2.查看文件系统及其挂载点
# df -h
文件系统              容量  已用  可用 已用%% 挂载点
/dev/sda3              26G   16G  8.7G  64% /
tmpfs                 1.9G     0  1.9G   0% /dev/shm
/dev/sda1             504M   37M  443M   8% /boot
/dev/sdb1             109G   69G   35G  67% /var/lib/mysql

文件系统可以是逻辑卷,也可以直接为物理分区。
/dev/mapper/VolGroup-lv_root   逻辑卷
/dev/sdb1   物理分区

3.磁盘信息查看
# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
64 heads, 32 sectors/track, 30720 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006dbeb

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           2         513      524288   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             514        4609     4194304   82  Linux swap / Solaris
Partition 2 does not end on cylinder boundary.
/dev/sda3            4610       30720    26737664   83  Linux
Partition 3 does not end on cylinder boundary.

Disk /dev/sdb: 118.1 GB, 118111600640 bytes
255 heads, 63 sectors/track, 14359 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x276e626e

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1       14359   115338636   83  Linux

两个物理硬盘:
Disk /dev/sda:
Disk /dev/sdb:
除了显示硬盘分区,同时显示逻辑卷信息,逻辑卷以vg_开头

fdisk /dev/sdb 对物理磁盘进行分区。


案例操作:
扩容;/ 目录增加8G

机器原本/目录有22G,属于逻辑卷。因此可以直接增加,如果是直接的物理磁盘,则不能在该目录扩容
[root@mysqlsource]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
                       22G   16G  4.7G  77% /
tmpfs                 3.8G  224K  3.8G   1% /dev/shm
/dev/sda1             485M   34M  427M   8% /boot

新增加硬盘(/dev/sdb   16G):
[root@mysqlsource]# fdisk -l
Disk /dev/sda: 32.2 GB, 32212254720 bytes
64 heads, 32 sectors/track, 30720 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0008c51d
   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           2         501      512000   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2             502       30720    30944256   8e  Linux LVM
Partition 2 does not end on cylinder boundary.
Disk /dev/mapper/VolGroup-LogVol01: 23.1 GB, 23089643520 bytes
255 heads, 63 sectors/track, 2807 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
Disk /dev/mapper/VolGroup-LogVol00: 8594 MB, 8594128896 bytes
255 heads, 63 sectors/track, 1044 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

Disk /dev/sdb: 17.2 GB, 17179869184 bytes
64 heads, 32 sectors/track, 16384 cylinders
Units = cylinders of 2048 * 512 = 1048576 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000

可以对/dev/sdb 进行分区
fdisk /dev/sdb
看到新建分区sdb1
fdisk -l

然后对sdb1创建成物理卷,也可以直接把/dev/sdb创建成物理卷

创建物理卷:
[root@mysqlsource ~]# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

查看卷组 VolGroup  
[root@mysqlsource ~]# vgs 
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   1   2   0 wz--n- 29.51g    0
  
新建的物理分区,分配到卷组VolGroup
[root@mysqlsource ~]# vgextend VolGroup /dev/sdb 
  Volume group "VolGroup" successfully extended

查看需要新增的lv卷
[root@mysqlsource ~]# lvs
  LV       VG       Attr      LSize  Pool Origin Data%  Move Log Cpy%Sync Convert
  LogVol00 VolGroup -wi-ao---  8.00g                                             
  LogVol01 VolGroup -wi-ao--- 21.50g                                             

增加lv卷lvextend -L +[??]g /dev/[vg]/[lv] (加8G)
[root@mysqlsource ~]# lvextend -L +8G /dev/VolGroup/LogVol01
  Extending logical volume LogVol01 to 29.50 GiB
  Logical volume LogVol01 successfully resized

在线扩容 resize2fs /dev/[vg]/[lv] 
[root@mysqlsource ~]# resize2fs /dev/VolGroup/LogVol01
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/LogVol01 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 2
Performing an on-line resize of /dev/VolGroup/LogVol01 to 7734272 (4k) blocks.
The filesystem on /dev/VolGroup/LogVol01 is now 7734272 blocks long.

空间已扩展为30G
[root@mysqlsource ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
                       30G   16G   13G  56% /
tmpfs                 3.8G  224K  3.8G   1% /dev/shm
/dev/sda1             485M   34M  427M   8% /boot

vgs可以看到VolGroup扩展了容量,VFreee是剩下可用容量,如果显示8.00G,
[root@mysqlsource ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree
  VolGroup   2   2   0 wz--n- 45.50g 8.00g
[root@mysqlsource ~]# 

把剩余8G加上
[root@mysqlsource ~]# lvextend -L +8G /dev/VolGroup/LogVol01
  Extending logical volume LogVol01 to 37.50 GiB
  Insufficient free space: 2048 extents needed, but only 2047 available
[root@mysqlsource ~]# 
[root@mysqlsource ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
                       30G   16G   13G  56% /
tmpfs                 3.8G  224K  3.8G   1% /dev/shm
/dev/sda1             485M   34M  427M   8% /boot
[root@mysqlsource ~]# resize2fs /dev/VolGroup/LogVol01
resize2fs 1.41.12 (17-May-2010)
The filesystem is already 7734272 blocks long.  Nothing to do!


[root@mysqlsource ~]# lvextend -L +7G /dev/VolGroup/LogVol01
  Extending logical volume LogVol01 to 36.50 GiB
  Logical volume LogVol01 successfully resized
[root@mysqlsource ~]# resize2fs /dev/VolGroup/LogVol01
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/VolGroup/LogVol01 is mounted on /; on-line resizing required
old desc_blocks = 2, new_desc_blocks = 3
Performing an on-line resize of /dev/VolGroup/LogVol01 to 9569280 (4k) blocks.
The filesystem on /dev/VolGroup/LogVol01 is now 9569280 blocks long.

[root@mysqlsource ~]# vgs
  VG       #PV #LV #SN Attr   VSize  VFree   
  VolGroup   2   2   0 wz--n- 45.50g 1020.00m
[root@mysqlsource ~]# 


新建逻辑卷并且挂载磁盘

fdisk /dev/sdc 进行分区,分成一个/dev/sdbc1物理磁盘

pvcreate:
[root@mysqlsource ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created


pvremove:
[root@mysqlsource ~]# pvremove /dev/sdc1
  Labels on physical volume "/dev/sdc1" successfully wiped


vgcreate:
[root@mysqlsource ~]# vgcreate VolGroup1 /dev/sdc1
  Volume group "VolGroup1" successfully created
[root@mysqlsource ~]# vgs
  VG        #PV #LV #SN Attr   VSize    VFree   
  VolGroup    2   2   0 wz--n-   45.50g 1020.00m
  VolGroup1   1   0   0 wz--n- 1020.00m 1020.00m
[root@mysqlsource ~]# 

vgremove:
[root@mysqlsource ~]# vgremove VolGroup1
  Volume group "VolGroup1" successfully removed
[root@mysqlsource ~]# 

lvcreate:
[root@mysqlsource ~]# lvcreate -n LogVol02 -L 1020m VolGroup1
  Logical volume "LogVol02" created
[root@mysqlsource ~]# lvs
  LV       VG        Attr      LSize    Pool Origin Data%  Move Log Cpy%Sync Convert
  LogVol00 VolGroup  -wi-ao---    8.00g                                             
  LogVol01 VolGroup  -wi-ao---   36.50g                                             
  LogVol02 VolGroup1 -wi-a---- 1020.00m                                             
[root@mysqlsource ~]# 

lvremove:
[root@mysqlsource ~]# lvremove /dev/VolGroup1/LogVol02
Do you really want to remove active logical volume LogVol02? [y/n]: y
  Logical volume "LogVol02" successfully removed
[root@mysqlsource ~]#

[root@mysqlsource ~]# lvs
  LV       VG        Attr      LSize    Pool Origin Data%  Move Log Cpy%Sync Convert
  LogVol00 VolGroup  -wi-ao---    8.00g                                             
  LogVol01 VolGroup  -wi-ao---   36.50g                                             
  LogVol02 VolGroup1 -wi-a---- 1020.00m                                             

格式化文件系统
[root@mysqlsource ~]# mkfs.ext4 /dev/VolGroup1/LogVol02
mke2fs 1.41.12 (17-May-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
65280 inodes, 261120 blocks
13056 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=268435456
8 block groups
32768 blocks per group, 32768 fragments per group
8160 inodes per group
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376

Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 20 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@mysqlsource ~]# 
[root@mysqlsource ~]# 
[root@mysqlsource ~]# mkdir /test

挂载文件系统
[root@mysqlsource ~]# mount /dev/VolGroup1/LogVol02 /test

查看
[root@mysqlsource ~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-LogVol01
                       36G   16G   19G  46% /
tmpfs                 3.8G  224K  3.8G   1% /dev/shm
/dev/sda1             485M   34M  427M   8% /boot
/dev/mapper/VolGroup1-LogVol02
                     1004M   18M  936M   2% /test
[root@mysqlsource ~]# 


/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要增大的文件系统。 





猜你喜欢

转载自blog.csdn.net/xinyuanqianxun1987/article/details/52918445
lv
今日推荐