将两块硬盘挂载成lvm分区,并虚拟合并成一个硬盘。
Filesystem:代表该文件系统时哪个分区,所以列出的是设备名称。
1K-blocks:说明下面的数字单位是1KB,可利用-h或-m来改变单位大小,也可以用-B来设置。
Used:已经使用的空间大小。
Available:剩余的空间大小。
Use%:磁盘使用率。如果使用率在90%以上时,就需要注意了,避免磁盘容量不足出现系统问题,尤其是对于文件内容增加较快的情况(如/home、/var/spool/mail等)。
Mounted on:磁盘挂载的目录,即该磁盘挂载到了哪个目录下面。
NAME : 这是块设备名。
MAJ:MIN : 本栏显示主要和次要设备号。
RM : 本栏显示设备是否可移动设备。注意,在本例中设备sdb和sr0的RM值等于1,这说明他们是可移动设备。
SIZE : 本栏列出设备的容量大小信息。例如298.1G表明该设备大小为298.1GB,而1K表明该设备大小为1KB。
RO : 该项表明设备是否为只读。在本案例中,所有设备的RO值为0,表明他们不是只读的。
TYPE :本栏显示块设备是否是磁盘或磁盘上的一个分区。在本例中,sda和sdb是磁盘,而sr0是只读存储(rom)。
MOUNTPOINT : 本栏指出设备挂载的挂载点。
可以看到有两块4T的硬盘sda和sdb未挂载
如果fdisk -l查看硬盘,出现:Partition 1 does not start on physical sector boundary异常,说明分区时起始扇区设置不合理,需要进行管理
在将磁盘或者磁盘分区用作物理卷(PV)之前,需要对其进行初始化工作,即进行磁盘分区操作;因磁盘分区需求大于2T,所以fdisk无法实现管理,需要使用parted命令来做磁盘分区管理;parted的详细使用方法请参考博客:使用parted命令对磁盘进行分区
/dev/sdb
# 因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt
# 新建/dev/sdb的磁盘标签类型为GPT
parted /dev/sdb mklabel gpt
# 将/dev/sdb整个空间分给同一个分区/也可以划分多个分区
parted /dev/sdb mkpart primary 0 100%
/dev/sda 同理
如果fdisl -l出现Partition 1 does not start on physical sector boundary
或者进行分区时出现:The resulting partition is not properly aligned for best performance
# 因为parted命令只能针对gpt格式的磁盘进行操作,所以这里必须将新建的磁盘标签格式设为gpt
# 新建/dev/sdb的磁盘标签类型为GPT
parted /dev/sdb mklabel gpt
#计算分区起始位置(如果找不到optimal_io_size,可以默认分区时出现的警告2048s)
# cat /sys/block/sdb/queue/optimal_io_size
# 1048576
# cat /sys/block/sdb/queue/minimum_io_size
# 262144
# cat /sys/block/sdb/alignment_offset
# 0
# cat /sys/block/sdb/queue/physical_block_size
# 512
# (optimal_io_size + alignment_offset ) / physical_block_size.
# (1048576 + 0) / 512 = 2048
# 划分分区
parted /dev/sdb mkpart primary 2048s 100%
# 不要忘记2048后的s单位
创建物理卷的命令为pvcreate;利用该命令将希望添加到卷组的所有分区或磁盘创建为物理卷;
本次sdb2和sda2为主要分区,将分区/dev/sdb2和/dev/sda2分区创建为物理卷:
pvcreate /dev/sdb2
pvcreate /dev/sda2
pvscan
创建卷组的命令为vgcreate;用此命令将使用pvcreate建立的物理卷创建为一个完整的卷组;
将物理卷/dev/sda2创建为一个名为lvm_data的卷组:
# 先使用硬盘1创建vg:lvm_data
vgcreate [自定义LVM名称] [硬盘]
vgcreate lvm_data /dev/sda2
# 使用硬盘2扩展vg
vgextend [自定义vg名称] [硬盘]
vgs
可以看到卷组大小为7.28T,卷组lvm_data成功添加,并且其总空间为两块物理磁盘的总大小(因换算单位不同,所以不是精确的8T)。
若想更换命名可以使用vgrename,将lvm_data更名为lvm_mysql
vgrename [旧命] [新名]
创建逻辑卷的命令为lvcreate;用此命令将在使用vgcreate建立的卷组上创建逻辑卷;
在卷组vg_mysql上创建一个名为lv_mysql的逻辑卷
注意这里为上一步命名的卷组名(lvm_data、lvm_mysql)
#分区大小不能超过硬盘容量总和
lvcreate -l [自定义分区大小] -n [自定义分区名称] [vg名称]
#如创建一个10G的分区:
lvcreate -l10.0G -n lv_mysql vg_mysql
#如果将两个盘全部空间分区,可以使用以下方式:
lvcreate -l 100%VG -n lv_mysql vg_mysql
# 使用全部空间分区
lvcreate -l 100%VG -n lv_mysql vg_mysql
# 创建完成后使用 lvdisplay查看
lvdisplay
将创建的lvmysql逻辑卷格式化为xfs
mkfs -t [文件系统] [分区位置]
mkfs -t xfs /dev/vg_mysql/lv_mysql
在linux中,mnt是存储挂载设备的目录;mnt是mount的缩写,是挂载的意思,mount命令用于挂载linux系统外的文件,因此mnt目录可以理解为mount命令挂载光驱、USB等设备后,会在mut中找到相应的设备目录。
mkdir /mnt/lvm_data
挂载
mount /dev/vg_mysql/lv_mysql /mnt/lvm_data
查看是否挂载成功
df -Th
方法1 没那么好,硬盘名称可能发生变化
在/etc/fstab文件末尾添加如下行:/dev/vg_mysql/lv_mysql /mnt/lvm_data xfs defaults 0 0
echo ‘/dev/vg_mysql/lv_mysql /mnt/lvm_data xfs defaults 0 0’ >>/etc/fstab
如果不行请另行打开/etc/fstab编辑
方法2
查看UUID: sudo blkid 或 lsblk -f
echo ‘UUID=28584681-d4c9-4ecc-a3ba-2f0d229f099a /mnt/lvm_data xfs defaults 0 0’ >>/etc/fstab
umount /mnt/lvm_data
linux下使用LVM合并挂载硬盘以及扩容
LVM实现将2块磁盘总空间“合二为一”并挂载到同一目录
How to align partitions for best performance using parted
解决centos使用parted命令分区出现的警告Partition 1 does not start on physical sector boundary