虽然规划好,比较少去执行这个,但现在SSD其实不是很贵的,不要一开始分配那么多
使用 fdisk 分区
sudo fdisk /dev/sdb
创建物理卷
sudo pvcreate /dev/sdb1
扩展卷组
sudo vgextend vgdata /dev/sdb1
扩展逻辑卷
sudo lvextend -l +100%FREE /dev/vgdata/lv_storage
扩展 XFS 文件系统
sudo xfs_growfs /mnt
验证
lsblk sudo pvdisplay /dev/sdb1 sudo vgdisplay vgdata sudo lvdisplay /dev/vgdata/lv_storage df -h /mnt
认识LVM
LVM是逻辑盘卷管理(Logical Volume Manager)的简称,它是Linux环境下对磁盘分区进行管理的一种机制,它将多个物理分区汇聚为一个卷组(Volume Group),而且这些物理卷的大小可以不相同,甚至类型也可以不同(如SCSI、SATA磁盘)。组成的卷组就像一块大硬盘,然后再从中分割出一块一块 的逻辑卷(Logical Volume),并进一步在逻辑卷组上创建文件系统。
LVM技术的方便之处在于可以动态的扩充一个逻辑卷的大小而不需要重新分区,而且这种扩充是不停机、跨磁盘进行的。
LVM相关知识
1、术语解释: PV(Physical Volume):物理卷,处于 LVM 最底层,可以是物理硬盘或分区。
VG(Volume Group):卷组,建立在 PV 之上,可以含有一个到多个PV。
LV (Logical Volume):逻辑卷,建立在 VG 之上,相当于原来分区的概念。不过大小可动态改变。
PE (Physical Extend):物理区域,PV 中可以用于分配的最小存储单元,可在建立 PV 时指定,如 1、2、4、8... .... 64M,同一 VG 中的所有 PV 的 PE 应该相同。
LE (Logical Extend):逻辑区域,LV 中可以用于分配的最小存储单元,取决于 LV 所在 PV 中 PE 的大小。
VGDA (Volume Group Descriptor Area):卷组描述区域,存在于每个PV 中,用于描述该 PV 本 PV 所含 VG、VG 中的 LV 以及 LV 中的物理区域分配等信息,在使用 pvcreate 命令建立 PV 时建立。
2、LVM创建过程: 建立 LVM 类型的分区
建立 LVM 物理卷
建立 LVM 卷组
建立 LVM 逻辑卷
建立文件系统
挂接文件系统
使用文件系统
3、PV 相关命令 和 LVM 物理卷管理相关的命令包括: pvdisplay:显示PV属性 pvscan:在系统所有硬盘上查找PV pvcreate:创建PV(在PV上初始化 VGDA) pvdata:显示PV上的 VGDA信息 pvchange:改变PV属性 pvmove:在PV间移动PE/LE
4、VG 相关命令 和 LVM 卷组管理相关的命令包括: vgdisplay:显示VG卷组属性 vgscan:查找系统现有VG卷组 vgcreate:创建VG卷组(在 VG 上初始化VGDA) vgdata:显示VG卷组上的 VGDA信息 vgchange:改变VG卷组属性 vgmove:在VG卷组间移动 PE/LE
5、LV 相关命令 和 LVM 逻辑卷管理相关的命令包括: lvdisplay:显示LV卷组属性 lvscan:查找系统现有LV卷组 lvcreate:创建LV卷组(在LV上初始化 LVDA) lvdata:显示LV卷组上的LVDA信息 lvchange:改变 LV卷组属性 lvmove:在LV卷组间移动PE/LE 三:实现LVM过程 一个机器,OS安装在sdb磁盘上,2个磁盘阵列,分别是sda:300G 和 sdc:880G,现在在sda 和sdc上创建LVM,并分出3个数据分区给coremail使用,分别是index mysqldata和data 1: 创建物理分区
[root@localhost aoao]# fdisk /dev/sda The number of cylinders for this disk is set to 35668. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with:
software that runs at boot time (e.g., old versions of LILO)
booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sda: 293.3 GB, 293387370496 bytes 255 heads, 63 sectors/track, 35668 cylinders Units = cylinders of 16065 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-35668, default 1): //直接按回车 Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-35668, default 35668): //直接按回车 Using default value 35668 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e //把分区类型更改为LVM分区 Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/sda: 293.3 GB, 293387370496 bytes 255 heads, 63 sectors/track, 35668 cylinders Units = cylinders of 16065 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 35668 286503178+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks. 对sdc也进行同样的操作
[root@localhost aoao]# fdisk /dev/sdc The number of cylinders for this disk is set to 107006. There is nothing wrong with that, but this is larger than 1024, and could in certain setups cause problems with:
software that runs at boot time (e.g., old versions of LILO)
booting and partitioning software from other OSs (e.g., DOS FDISK, OS/2 FDISK) Command (m for help): p Disk /dev/sdc: 880.1 GB, 880162111488 bytes 255 heads, 63 sectors/track, 107006 cylinders Units = cylinders of 16065 512 = 8225280 bytes Device Boot Start End Blocks Id System Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-107006, default 1): Using default value 1 Last cylinder or +size or +sizeM or +sizeK (1-107006, default 107006): Using default value 107006 Command (m for help): t Selected partition 1 Hex code (type L to list codes): 8e Changed system type of partition 1 to 8e (Linux LVM) Command (m for help): p Disk /dev/sdc: 880.1 GB, 880162111488 bytes 255 heads, 63 sectors/track, 107006 cylinders Units = cylinders of 16065 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 107006 859525663+ 8e Linux LVM Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot. Syncing disks. 需要reboot机器是的系统识别到新的分区。 2:创建LVM物理卷 (PV:Physical Volume) (1)确认两个磁盘阵列分区正常
[root@localhost aoao]# fdisk -l /dev/sda /dev/sdc Disk /dev/sda: 293.3 GB, 293387370496 bytes 255 heads, 63 sectors/track, 35668 cylinders Units = cylinders of 16065 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sda1 1 35668 286503178+ 8e Linux LVM Disk /dev/sdc: 880.1 GB, 880162111488 bytes 255 heads, 63 sectors/track, 107006 cylinders Units = cylinders of 16065 512 = 8225280 bytes Device Boot Start End Blocks Id System /dev/sdc1 1 107006 859525663+ 8e Linux LVM (2)用vgscan扫描lvm文件系统
[root@localhost aoao]# vgscan vgscan -- reading all physical volumes (this may take a while...) vgscan -- "/etc/lvmtab" and "/etc/lvmtab.d" successfully created vgscan -- WARNING: This program does not do a VGDA backup of your volume group (3)用pvcreate创建physical volumn
[root@localhost aoao]# pvcreate /dev/sda1 /dev/sdc1 pvcreate -- physical volume "/dev/sda1" successfully created pvcreate -- physical volume "/dev/sdc1" successfully created (4)确认pv创建成功
[root@localhost aoao]# pvdisplay /dev/sda1 /dev/sdc1 pvdisplay -- "/dev/sda1" is a new physical volume of 273.23 GB pvdisplay -- "/dev/sdc1" is a new physical volume of 819.71 GB
3:创建LVM 卷组 (VG: virtual group) (1)用vgcreate创建名字为vg0的卷组
[root@localhost aoao]# vgcreate -s 32M vg0 /dev/sda1 /dev/sdc1 vgcreate -- INFO: maximum logical volume size is 2 Terabyte vgcreate -- doing automatic backup of volume group "vg0" vgcreate -- volume group "vg0" successfully created and activated
将新分区添加到物理卷: bash 复制代码 sudo pvcreate /dev/sda3 将新的物理卷添加到现有的卷组: bash 复制代码 sudo vgextend ubuntu-vg /dev/sda3 扩展逻辑卷以使用卷组中的所有剩余空间: bash 复制代码 sudo lvextend -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv 调整文件系统大小以使用扩展的空间: bash 复制代码 sudo resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv 步骤 5:验证扩展 检查文件系统的大小以确认扩展成功: bash 复制代码 df -h