一、需求场景
将主机的2块数据盘(253T + 253T)"合并" 后挂载到 /bio 目录下,要求文件系统格式化为 xfs。
- 数据盘
/dev/sdb:256T
/dev/sdc:256T
- 文件系统:ext4
- 挂载目录:/bio
- OS版本:CentOS 7.6
- lvm版本:lvm2
二、实现方法
使用 LVM 逻辑卷管理来实现。
二、实现步骤
1. 磁盘分区(parted,非必须)
在将磁盘或者磁盘分区用作物理卷(PV)之前,需要对其进行初始化工作,即进行磁盘分区操作;因磁盘分区需求大于2T,所以 fdisk 命令无法实现管理,需要使用 parted 命令来做磁盘分区管理。
/dev/sdb :256T
# 新建/dev/sdb 的磁盘标签类型为 GPT [root@module ~]# parted /dev/sdb mklabel gpt Warning: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? Y Information: You may need to update /etc/fstab. # 将/dev/sdb 整个空间分给同一个分区 [root@module ~]# parted /dev/sdb mkpart primary 0 100% Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I Information: You may need to update /etc/fstab.
/dev/sdc:256T
# 新建/dev/sdc 的磁盘标签类型为 GPT [root@module ~]# parted /dev/sdc mklabel gpt # 将/dev/sdc 整个空间分给同一个分区 [root@module ~]# parted /dev/sdc mkpart primary 0 100% Warning: The resulting partition is not properly aligned for best performance. Ignore/Cancel? I Information: You may need to update /etc/fstab.
2.创建物理卷(pvcreate)
创建物理卷的命令为 pvcreate,利用该命令将希望添加到卷组的所有分区或磁盘创建为物理卷。
将分区 /dev/sdb 和 /dev/sdc 分区创建为物理卷:
[root@module ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [root@module ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created.
3.创建卷组(vgcreate)
创建卷组的命令为 vgcreate,用此命令将使用物理卷创建为一个完整的卷组。
将物理卷 /dev/sdb 创建为一个名为 vg_data 的卷组:
[root@module ~]# vgcreate vg_data /dev/sdb
Volume group "vg_data" successfully created
4.添加新的物理卷到卷组中(vgextend)
此步即为将2块磁盘空间合二为一的关键步骤。当系统中新增了磁盘或新建了物理卷,而要将其添加到已有卷组时,就可使用 vgextend 命令。
将物理卷 /dev/sdc添加到 vg_data 卷组中:
[root@module ~]# vgextend vg_data /dev/sdc
Volume group "vg_data" successfully extended
5.查看卷组(vgs)
查看卷组用 vgs:
[root@localhost /]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- 556.66g 4.00m
vg_data 2 1 0 wz--n- 465.66t 1.30g
从 vgs 命令的回显结果来看,卷组 vg_data 成功添加,并且其总空间为两块物理磁盘的总大小
6.创建逻辑卷(lvcreate)
创建逻辑卷的命令为 lvcreate。用此命令将在使用 vgcreate 建立的卷组上创建逻辑卷。
在卷组 vg_data 上创建一个名为 lv_data 的逻辑卷,指定大小为 465.66T。
-n:指定逻辑卷名
-L:指定逻辑卷大小
lvcreate -l 100%VG -n lvm_data vg_data
7.格式化逻辑卷
将创建的 lvjenkins 逻辑卷格式化为 xfs。
[root@module ~]# mkfs -t xfs /dev/mapper/vg_data-lvm_data meta-data=/dev/vgmysql/lvmysql isize=512 agcount=33, agsize=268435328 blks = sectsz=4096 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=0, rmapbt=0, reflink=0 data = bsize=4096 blocks=8777839616, imaxpct=5 = sunit=64 swidth=64 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=521728, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Allocating group tables: completed writing into inode table: completed Creating journal (32768 blocks): Writing superblocks and filesystem accounting information: completed
格式化2:mkfs.xfs /dev/vg_data/lvm_data
8.创建挂载目录并挂载
- 创建挂载目录 /bio
[root@module ~]# mkdir /bio
- 挂载
[root@module ~]# mount /dev/mapper/vg_data-lvm_data /bio
- 配置开机自动挂载
[root@module ~]# echo "mount /dev/mapper/vg_data-lvm_data /bio xfs defaults 0 0" > /etc/fstab
CentOS 查看块设备命令lsblk详解
lsblk命令可以列出所有可用块设备的信息,比如我们说的逻辑磁盘,而df -h查看的是文件系统级别的信息。
lsblk命令包含在util-linux包中,yum安装util-linux包即可,util-linux包含多个命令工具。
lsblk命令默认情况下将以树状列出所有块设备。
1、NAME:块设备名
2、MAJ:MIN:本栏显示主要和次要设备号
3、RM:显示可移动设备。0表示非移动设备,1表示可移动设备
4、SIZE:块设备的空间大小
5、RO:是否只读,0表示非只读,1表示只读
6、TYPE:块设备类型,比如disk磁盘,part分区,lvm逻辑卷,rom只读存储
7、MOUNTPOINT:设备挂载点
df命令可以获取硬盘被占用了多少空间,目前还剩下多少空间等信息,它也可以显示所有文件系统对i节点和磁盘块的使用情况。
Linux lsblk命令详解
1. 概述
lsblk
命令用于显示系统中所有可用的块设备信息。相比于blkid
命令,lsblk
提供了更多的信息和输出格式控制。它从udev
读取信息,因此非root
用户也可以使用。lsblk
命令显示设备名、主次设备号、设备是否可以删除、设备文件大小、设备是否为只读、设备类型和挂载路径等信息。
2. 语法
lsblk [选项]
常用选项包括:
-a, --all
:显示所有设备,包括空设备。-b, --bytes
:以字节为单位显示大小。-d, --nodeps
:仅列出块设备,不显示它们的依赖关系(例如分区)。-e, --exclude <列表>
:排除指定的设备。-f, --fs
:显示文件系统信息。-h, --help
:显示帮助信息并退出。-i, --ascii
:以ASCII字符显示树形结构。-J, --json
:以JSON格式输出。-l, --list
:以列表格式输出设备信息。-n, --noheadings
:不显示标题。-o, --output <列>
:指定显示的列,用逗号分隔。-P, --pairs
:以键值对格式输出。-r, --raw
:以原始格式显示。-t, --topology
:显示设备拓扑信息。-V, --version
:显示版本信息并退出。
3. 示例
3.1 显示所有设备的信息
# lsblk
NAME
:设备名称。MAJ:MIN
:主次设备号。RM
:设备是否为可移动设备(1表示是,0表示否)。SIZE
:设备大小。RO
:设备是否为只读设备(1表示是,0表示否)。TYPE
:设备类型,如disk
(磁盘)、part
(分区)、lvm
(逻辑卷)等。MOUNTPOINT
:设备的挂载点。
3.2 以列表格式显示设备信息
# lsblk -l
以列表形式显示块设备信息。
3.3 显示文件系统信息
# lsblk -f
FSTYPE
:文件系统类型。LABEL
:文件系统标签。UUID
:文件系统的UUID。MOUNTPOINT
:文件系统的挂载点。
3.4 仅列出块设备,不显示分区
# lsblk -d
仅显示块设备,不显示其分区信息。
3.5 以JSON格式输出
# lsblk -J
{ "blockdevices": [ {"name":"sda", "maj:min":"8:0", "rm":false, "size":"20G", "ro":false, "type":"disk", "mountpoint":null, "children":[ {"name":"sda1", "maj:min":"8:1", "rm":false, "size":"500M", "ro":false, "type":"part", "mountpoint":"/boot"}, {"name":"sda2", "maj:min":"8:2", "rm":false, "size":"1G", "ro":false, "type":"part", "mountpoint":null, "children":[ {"name":"lvm-root", "maj:min":"253:0", "rm":false, "size":"15G", "ro":false, "type":"lvm", "mountpoint":"/"} ] }, {"name":"sda3", "maj:min":"8:3", "rm":false, "size":"18.5G", "ro":false, "type":"part", "mountpoint":null, "children":[ {"name":"lvm-root", "maj:min":"253:0", "rm":false, "size":"15G", "ro":false, "type":"lvm", "mountpoint":"/"} ] } ] }, {"name":"sr0", "maj:min":"11:0", "rm":true, "size":"1024M", "ro":false, "type":"rom", "mountpoint":null} ] }
以JSON格式输出块设备信息,适合进一步的自动化处理。
4. 详细示例
示例1:显示所有设备的信息,并包含文件系统类型
# lsblk -f
显示设备及其文件系统类型、标签、UUID和挂载点。
示例2:以键值对格式输出设备信息
# lsblk -P