当前位置: 首页 > news >正文

Linux 如何创建逻辑卷并使用

一、逻辑卷的介绍

生成环境中逻辑卷使用率很高

逻辑卷的诞生:如果对磁盘直接使用fdisk分区,那么这中分区,我们叫做Linux的标准分区,Linux的标准分区格式化成文件系统之后,挂载使用,那么一旦文件系统的空间满了,是无法进行扩容的。如果一定要进行扩容,需要将数据备份出来,再换一个更大的文件系统,再将数据还原回去。这种方法效果特别低。

逻辑卷的

pv(plysical volume)物理卷

vg(volume group) 卷组

lv(logical volume) 逻辑卷

pv的创建,pv的删除(向pv里面加入新的块设备就相当于扩容pv,从pv里边删除块设备,就相当于缩容pv)

vg的创建,vg的删除,vg的扩容,vg的缩容(不包含)

lv的创建,lv对的删除,lv的扩容,lv的缩容(不包含)

逻辑卷创建顺序:

  1. pvcreate创建物理卷
  2. vgcreate 创建卷组
  3. lvcreate 创建逻辑卷
  4. 格式化逻辑卷(mkfs)
  5. 挂载逻辑卷(mount)

逻辑卷删除顺序:

  1. 卸载逻辑卷(umount)
  2. lvremove 删除逻辑卷
  3.  vgreduce 从卷组中移除物理卷
  4. vgremove 删除卷组
  5. pvremove 删除物理卷

二、创建物理卷(PV)

1、pvcreate创建物理卷

# 需要先进行分区
[server root ~] # fdisk /dev/sdc -lDisk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0xc1c4f2abDevice Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     2099199     1048576   83  Linux
/dev/sdc2         2099200     6293503     2097152   83  Linux
[server root ~] # #创建和删除
[server root ~] # pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created.
[server root ~] # pvcreate /dev/sdc2 Physical volume "/dev/sdc2" successfully created.[server root ~] # pvsPV         VG Fmt  Attr PSize PFree/dev/sdc1     lvm2 ---  1.00g 1.00g/dev/sdc2     lvm2 ---  2.00g 2.00g# PV:物理卷
/dev/sdc1:第一个物理卷,在 /dev/sdc 磁盘上的第一个分区
/dev/sdc2:第二个物理卷,在 /dev/sdc 磁盘上的第二个分区
# VG:卷组
# Fmt:格式。lvm2 是当前LVM的版本,表示这是一个LVM2格式的物理卷(LVM的第二版格式)
# Attr:属性。  --- 表示该物理卷没有特殊的属性标记
# PSize:物理卷大小
/dev/sdc1 的大小是 1.00GB
/dev/sdc2 的大小是 2.00GB
# PFree:物理卷空虚空间
/dev/sdc1 上有 1.00GB 的空闲空间
/dev/sdc2 上有 2.00GB 的空闲空间

2、如果pv已经被某个vg使用,那么无法被删除

[server root ~] # pvcreate /dev/sdc{1..2}Physical volume "/dev/sdc1" successfully created.Physical volume "/dev/sdc2" successfully created.
[server root ~] # pvsPV         VG Fmt  Attr PSize PFree/dev/sdc1     lvm2 ---  1.00g 1.00g/dev/sdc2     lvm2 ---  2.00g 2.00g
[server root ~] # pvdisplay /dev/sdc1 "/dev/sdc1" is a new physical volume of "1.00 GiB"--- NEW Physical volume ---PV Name               /dev/sdc1VG Name               PV Size               1.00 GiBAllocatable           NOPE Size               0   Total PE              0Free PE               0Allocated PE          0PV UUID               5GMmBz-KjXz-iXOS-12lx-fBaF-W2db-3LRzXY

pvcreate也可以直接创建一整个磁盘

# 前提是磁盘没有进行分区,如果进行分区了需要删除分区,然后进行创建
[server root ~] # pvcreate /dev/sdbDevice /dev/sdb excluded by a filter.
[server root ~] # lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0  512M  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0 35.5G  0 part /
sdb      8:16   0   20G  0 disk 
├─sdb1   8:17   0    5G  0 part /mount-point1
├─sdb2   8:18   0    1K  0 part 
├─sdb5   8:21   0    5G  0 part /mount-point2
└─sdb6   8:22   0    6G  0 part /mount-point3
sdc      8:32   0   10G  0 disk 
├─sdc1   8:33   0    1G  0 part 
└─sdc2   8:34   0    2G  0 part 
sr0     11:0    1  4.4G  0 rom  
[server root ~] # fdisk /dev/sdc
Welcome to fdisk (util-linux 2.23.2).Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.Command (m for help): d
Partition number (1,2, default 2): 
Partition 2 is deletedCommand (m for help): d
Selected partition 1
Partition 1 is deletedCommand (m for help): d
No partition is defined yet!Command (m for help): w
The partition table has been altered!Calling ioctl() to re-read partition table.
Syncing disks.
[server root ~] # 
[server root ~] # lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   40G  0 disk 
├─sda1   8:1    0  512M  0 part /boot
├─sda2   8:2    0    4G  0 part [SWAP]
└─sda3   8:3    0 35.5G  0 part /
sdb      8:16   0   20G  0 disk 
├─sdb1   8:17   0    5G  0 part /mount-point1
├─sdb2   8:18   0    1K  0 part 
├─sdb5   8:21   0    5G  0 part /mount-point2
└─sdb6   8:22   0    6G  0 part /mount-point3
sdc      8:32   0   10G  0 disk 
sr0     11:0    1  4.4G  0 rom  [server root ~] # pvcreate /dev/sdc 
WARNING: dos signature detected on /dev/sdc at offset 510. Wipe it? [y/n]: yWiping dos signature on /dev/sdc.Physical volume "/dev/sdc" successfully created.
[server root ~] # pvsPV         VG Fmt  Attr PSize  PFree /dev/sdc      lvm2 ---  10.00g 10.00g

二、创建卷组(VG)

1、vgcreate创建 卷组

[server root ~] # fdisk /dev/sdc -lDisk /dev/sdc: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9c82f447Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     2099199     1048576   83  Linux
/dev/sdc2         2099200     6293503     2097152   83  Linux[server root ~] # pvcreate /dev/sdc1Physical volume "/dev/sdc1" successfully created.
[server root ~] # pvcreate /dev/sdc2Physical volume "/dev/sdc2" successfully created.
[server root ~] # pvsPV         VG Fmt  Attr PSize PFree/dev/sdc1     lvm2 ---  1.00g 1.00g/dev/sdc2     lvm2 ---  2.00g 2.00g
[server root ~] # vgcreate vg1 /dev/sdc1Volume group "vg1" successfully created
[server root ~] # vgcreate vg2 /dev/sdc2 Volume group "vg2" successfully created
[server root ~] # 
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize    VFree   vg1   1   0   0 wz--n- 1020.00m 1020.00mvg2   1   0   0 wz--n-   <2.00g   <2.00g
[server root ~] # pvsPV         VG  Fmt  Attr PSize    PFree   /dev/sdc1  vg1 lvm2 a--  1020.00m 1020.00m/dev/sdc2  vg2 lvm2 a--    <2.00g   <2.00g

vg卷组的删除(如果vg上有逻辑卷在使用,那么vg无法删除)

[server root ~] # vgsVG  #PV #LV #SN Attr   VSize    VFree   vg1   1   0   0 wz--n- 1020.00m 1020.00mvg2   1   0   0 wz--n-   <2.00g   <2.00g
[server root ~] # vgremove vg1Volume group "vg1" successfully removed
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize  VFree vg2   1   0   0 wz--n- <2.00g <2.00g
[server root ~] # vgremove vg2Volume group "vg2" successfully removed
[server root ~] # vgs
[server root ~] # 

2、vg卷组的扩容

# 在 /dev/sdc3 物理卷(PV)上创建了一个名为 vg2 的卷组(VG)
[server root ~] # vgcreate vg2 /dev/sdc3Physical volume "/dev/sdc3" successfully created.Volume group "vg2" successfully created# pvs查看物理卷,vgs查看卷组信息
[server root ~] # pvsPV         VG  Fmt  Attr PSize  PFree /dev/sdc1      lvm2 ---   1.00g  1.00g/dev/sdc2      lvm2 ---   2.00g  2.00g/dev/sdc3  vg2 lvm2 a--  <3.00g <3.00g
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize  VFree vg2   1   0   0 wz--n- <3.00g <3.00g
# VG:卷组名称
# #PV:物理卷数量
# #LV:逻辑卷数量
# #SN:快照数量
# Attr:属性wz--n-:这是卷组的属性,表示该卷组的状态和特性:w:表示该卷组是可写的(writable)。z:表示该卷组处于正常状态,没有错误。--:表示没有设置其他特别的标志。n:表示该卷组是可扩展的(可以添加更多物理卷)。-:表示没有设置其他标志。
# VSize:卷组的总大小
# VFree:卷组的剩余空间# 将 /dev/sdc1 扩展到卷组 vg2,即把 /dev/sdc1 纳入 vg2 卷组进行管理
[server root ~] # vgextend vg2 /dev/sdc1Volume group "vg2" successfully extended
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize VFreevg2   2   0   0 wz--n- 3.99g 3.99g
[server root ~] # # 删除旧的卷组,创建新的卷组 vg2,并将 /dev/sdc1 作为物理卷(PV)添加进这个卷组。
# -s 8M 参数指定了物理扩展(PE)的大小为 8MB
[server root ~] # vgremove vg2Volume group "vg2" successfully removed
[server root ~] # 
[server root ~] # vgs
[server root ~] # vgcreate vg2 /dev/sdc1 -s 8MVolume group "vg2" successfully created
[server root ~] # vgdisplay vg2--- Volume group ---VG Name               vg2System ID             Format                lvm2Metadata Areas        1Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                1Act PV                1VG Size               1016.00 MiBPE Size               8.00 MiBTotal PE              127Alloc PE / Size       0 / 0   Free  PE / Size       127 / 1016.00 MiBVG UUID               2l9GEi-6Kiw-RdcQ-vF9G-zKMx-B2y2-Pt8RnB

三、创建逻辑卷(LV)

1、lvcreate 命令创建语法

lvcreate -n 逻辑卷名字 -L 大小为多少 卷组名

-n        表示逻辑卷的名字

-L        表示逻辑卷的大小

vg2      表示使用卷组vg2创建该逻辑卷

# 现在卷组只有一个,大小是1016M,没有相关逻辑卷的信息
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize    VFree   vg2   1   0   0 wz--n- 1016.00m 1016.00m
[server root ~] # lvs# 创建一个逻辑卷lv1,大小为300M
[server root ~] # lvcreate -n lv1 -L 300M vg2Rounding up size to full physical extent 304.00 MiBLogical volume "lv1" created.
[server root ~] # lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg2 -wi-a----- 304.00m                                                    
[server root ~] # lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg2 -wi-a----- 304.00m                                                    
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize    VFree  vg2   1   1   0 wz--n- 1016.00m 712.00m# 创建lv2逻辑卷,大小为800M
[server root ~] # lvcreate -n lv2 -L 800M vg2Volume group "vg2" has insufficient free space (89 extents): 100 required.
# 卷组总大小只有1016M,剩余712M,所有创建报错了,需要扩容vg2卷组[server root ~] # vgextend vg2 /dev/sdc3Volume group "vg2" successfully extended# #PV变为2,表示现在卷组vg2包含了2个物理卷
# VSize增加为3.98GB,VFree也增加为大约3.69GB。
[server root ~] # vgsVG  #PV #LV #SN Attr   VSize VFree vg2   2   1   0 wz--n- 3.98g <3.69g# 再次创建逻辑卷lv2,大小为800MB
[server root ~] # lvcreate -n lv2 -L 800M vg2Logical volume "lv2" created.
[server root ~] # lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg2 -wi-a----- 304.00m                                                    lv2  vg2 -wi-a----- 800.00m                                                    
[server root ~] # 

2、逻辑卷格式化

逻辑卷创建完成之后,可以直接格式化成为文件系统使用

如果卷组下面创建了一个新的逻辑卷,那么该逻辑卷就会自动的在设备文件路径出现/dev/vgname/lvname

[server root ~] # ls /dev/vgs2
ls: cannot access /dev/vgs2: No such file or directory
[server root ~] # ls /dev/vg2
lv1  lv2
[server root ~] # ls /dev/vg2/ -l
total 0
lrwxrwxrwx 1 root root 7 Nov 26 16:18 lv1 -> ../dm-0
lrwxrwxrwx 1 root root 7 Nov 27 08:33 lv2 -> ../dm-1
[server root ~] # ls -l /dev/dm-1 /dev/dm-1 
brw-rw---- 1 root disk 253, 1 Nov 27 08:33 /dev/dm-1
brw-rw---- 1 root disk 253, 1 Nov 27 08:33 /dev/dm-1
# dm设备就表示逻辑卷的本尊。dm全拼是device mapper[server root ~] # ls /dev/mapper/ -l
total 0
crw------- 1 root root 10, 236 Nov 26 16:18 control
lrwxrwxrwx 1 root root       7 Nov 26 16:18 vg2-lv1 -> ../dm-0
lrwxrwxrwx 1 root root       7 Nov 27 08:33 vg2-lv2 -> ../dm-1# 列出了通过 UUID(通用唯一标识符)标识的磁盘分区和设备的符号链接
# /dev/disk/by-uuid/ 是一个符号链接目录,它包含了每个磁盘分区(包括硬盘、固态硬盘、光驱等)的 UUID 与设备节点之间的映射。UUID 是一种唯一标识符,用于标识磁盘分区,而不是基于设备名称(如 /dev/sda1)来识别分区
[server root ~] # ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root  9 Nov 26 10:57 2022-07-26-15-09-17-00 -> ../../sr0
lrwxrwxrwx 1 root root 10 Nov 26 10:57 48826076-975a-4d59-bf1a-5b1004e96f29 -> ../../sda2
lrwxrwxrwx 1 root root 10 Nov 26 10:57 4f4fe896-0d9e-4298-a6db-e0e314775bf0 -> ../../sdb6
lrwxrwxrwx 1 root root 10 Nov 26 10:57 51cbea6f-e37d-4ef5-a3f9-28a726c74085 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Nov 26 10:57 60a32a39-bdf6-4467-8893-3fc68045171b -> ../../sdb5
lrwxrwxrwx 1 root root 10 Nov 26 10:57 7f5b46d3-e0da-430a-97f2-2e6a19f9e4ff -> ../../sda3
lrwxrwxrwx 1 root root 10 Nov 26 10:57 ebaf11a7-f84f-4429-8df8-0ee0111e76e5 -> ../../sda1# mkfs.ext4格式化逻辑卷lv1
[server root ~] # mkfs.
mkfs.btrfs   mkfs.cramfs  mkfs.ext2    mkfs.ext3    mkfs.ext4    mkfs.minix   mkfs.xfs
[server root ~] # mkfs.ext4 /dev/mapper/vg2-lv1
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
77824 inodes, 311296 blocks
15564 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33947648
38 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729, 204801, 221185Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done [server root ~] # ls -l /dev/disk/by-uuid/
total 0
lrwxrwxrwx 1 root root  9 Nov 26 10:57 2022-07-26-15-09-17-00 -> ../../sr0
lrwxrwxrwx 1 root root 10 Nov 26 10:57 48826076-975a-4d59-bf1a-5b1004e96f29 -> ../../sda2
lrwxrwxrwx 1 root root 10 Nov 26 10:57 4f4fe896-0d9e-4298-a6db-e0e314775bf0 -> ../../sdb6
lrwxrwxrwx 1 root root 10 Nov 26 10:57 51cbea6f-e37d-4ef5-a3f9-28a726c74085 -> ../../sdb1
lrwxrwxrwx 1 root root 10 Nov 26 10:57 60a32a39-bdf6-4467-8893-3fc68045171b -> ../../sdb5
lrwxrwxrwx 1 root root 10 Nov 26 10:57 7f5b46d3-e0da-430a-97f2-2e6a19f9e4ff -> ../../sda3
lrwxrwxrwx 1 root root 10 Nov 27 10:17 8aea89c0-606d-4942-adb6-0a8263d32515 -> ../../dm-0
lrwxrwxrwx 1 root root 10 Nov 26 10:57 ebaf11a7-f84f-4429-8df8-0ee0111e76e5 -> ../../sda1

3、逻辑卷的删除

[server root ~] # lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1  vg2 -wi-a----- 304.00m                                                    lv2  vg2 -wi-a----- 800.00m                                                    
[server root ~] # lvremove lv2Volume group "lv2" not foundCannot process volume group lv2
[server root ~] # lvremove /dev/vg2/lv2 
Do you really want to remove active logical volume vg2/lv2? [y/n]: yLogical volume "lv2" successfully removed
[server root ~] # lvremove /dev/vg2/lv1
Do you really want to remove active logical volume vg2/lv1? [y/n]: yLogical volume "lv1" successfully removed
[server root ~] # lvs
[server root ~] # 

4、逻辑卷的扩容

# 创建大小为200M的lv1-ext4逻辑卷
[server root ~] # lvcreate -n lv1-ext4 vg2 -L 200M
WARNING: ext4 signature detected on /dev/vg2/lv1-ext4 at offset 1080. Wipe it? [y/n]: YWiping ext4 signature on /dev/vg2/lv1-ext4.Logical volume "lv1-ext4" created.[server root ~] # lvsLV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1-ext4 vg2 -wi-a----- 200.00m                                                    # 创建大小为500M的lv2-xfs 逻辑卷
[server root ~] # lvcreate -n lv2-xfs vg2 -L 500MRounding up size to full physical extent 504.00 MiBLogical volume "lv2-xfs" created.[server root ~] # lvsLV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1-ext4 vg2 -wi-a----- 200.00m                                                    lv2-xfs  vg2 -wi-a----- 504.00m# 格式化lv1-ext4的逻辑卷
[server root ~] # mkfs.ext4 /dev/vg2/lv1-ext4 
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done # 格式化lv2-xfs的逻辑卷
[server root ~] # mkfs.xfs /dev/vg2/lv2-xfs 
meta-data=/dev/vg2/lv2-xfs       isize=512    agcount=4, agsize=32256 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=129024, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0# 创建目录并挂载
[server root ~] # mkdir /ext4-test /xfs-test
[server root ~] # mount -t ext4 /dev/vg2/lv1-ext4 /ext4-test/
[server root ~] # mount /dev/vg2/lv2-xfs /xfs-test/
[server root ~] # 
[server root ~] # df -Th /xfs-test/ /ext4-test/
Filesystem                Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg2-lv2--xfs  xfs   501M   26M  476M   6% /xfs-test
/dev/mapper/vg2-lv1--ext4 ext4  190M  1.6M  175M   1% /ext4-test# 通过dd命令写入数据
[server root ~] # dd if=/dev/zero of=/xfs-test/file
dd: writing to ‘/xfs-test/file’: No space left on device
973257+0 records in
973256+0 records out
498307072 bytes (498 MB) copied, 6.33404 s, 78.7 MB/s
[server root ~] # dd if=/dev/zero of=/ext4-test/file
dd: writing to ‘/ext4-test/file’: No space left on device
377177+0 records in
377176+0 records out
193114112 bytes (193 MB) copied, 3.09574 s, 62.4 MB/s# 查看磁盘空间直接写满了,此时无法在对应目录下创建文件相关操作
[server root ~] # df -Th /xfs-test/ /ext4-test/
Filesystem                Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg2-lv2--xfs  xfs   501M  501M   20K 100% /xfs-test
/dev/mapper/vg2-lv1--ext4 ext4  190M  186M     0 100% /ext4-test
[server root ~] # 

在线扩容,在线扩容是指的文件系统不能卸载文件.

# 将lv1-ext4扩容到300M

# 将lv2-xfs扩容到700M

[server root ~] # lvextend /dev/vg2/lv1-ext4 -L 300MRounding size to boundary between physical extents: 304.00 MiB.Size of logical volume vg2/lv1-ext4 changed from 200.00 MiB (25 extents) to 304.00 MiB (38 extents).Logical volume vg2/lv1-ext4 successfully resized.
[server root ~] # lvextend /dev/vg2/lv2-xfs -L 700MRounding size to boundary between physical extents: 704.00 MiB.Size of logical volume vg2/lv2-xfs changed from 504.00 MiB (63 extents) to 704.00 MiB (88 extents).Logical volume vg2/lv2-xfs successfully resized.
[server root ~] # lvsLV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1-ext4 vg2 -wi-ao---- 304.00m                                                    lv2-xfs  vg2 -wi-ao---- 704.00m                                                    
[server root ~] # df -Th /ext4-test /xfs-test
Filesystem                Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg2-lv1--ext4 ext4      190M  186M     0 100% /ext4-test
/dev/mapper/vg2-lv2--xfs  xfs       501M  501M   20K 100% /xfs-test#因为扩容的部分没有格式化,所以文件系统没有检测不到
# ext4将文件系统加入到系统操作
[server root ~] # resize2fs /dev/vg2/lv1-ext4 
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg2/lv1-ext4 is mounted on /ext4-test; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/vg2/lv1-ext4 is now 311296 blocks long.[server root ~] # df -Th /ext4-test/
Filesystem                Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg2-lv1--ext4 ext4  291M  187M   87M  69% /ext4-test# xfs将文件系统加入到系统操作
[server root ~] # xfs_
xfs_admin      xfs_db         xfs_fsr        xfs_io         xfs_metadump   xfs_quota
xfs_bmap       xfs_estimate   xfs_growfs     xfs_logprint   xfs_mkfile     xfs_repair
xfs_copy       xfs_freeze     xfs_info       xfs_mdrestore  xfs_ncheck     xfs_rtcp
[server root ~] # xfs_growfs /dev/vg2/lv2-xfs 
meta-data=/dev/mapper/vg2-lv2--xfs isize=512    agcount=4, agsize=32256 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=129024, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=855, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 129024 to 180224
[server root ~] # df -Th /xfs-test/
Filesystem               Type  Size  Used Avail Use% Mounted on
/dev/mapper/vg2-lv2--xfs xfs   701M  501M  200M  72% /xfs-test

提示:我建议多操作几遍,加深对逻辑卷如何创建以及使用的理解!

好了下一篇文章见😁😁😁

相关文章:

Linux 如何创建逻辑卷并使用

一、逻辑卷的介绍 生成环境中逻辑卷使用率很高 逻辑卷的诞生&#xff1a;如果对磁盘直接使用fdisk分区&#xff0c;那么这中分区&#xff0c;我们叫做Linux的标准分区&#xff0c;Linux的标准分区格式化成文件系统之后&#xff0c;挂载使用&#xff0c;那么一旦文件系统的空间…...

java实现将图片插入word文档

插入图片所用依赖 private static void insertImage(XWPFDocument document, String path) {List<XWPFParagraph> paragraphs document.getParagraphs();for (XWPFParagraph paragraph : paragraphs) {CTP ctp paragraph.getCTP();for (int dwI 0; dwI < ctp.sizeO…...

初识java(3)

大家好&#xff0c;今天我们来讲讲我们的老伙计-变量&#xff0c;在哪一门编程语言中&#xff0c;变量的作用都是不可或缺的&#xff0c;那么下面我们就来详细了解一下java中的变量。 一.变量概念 在程序中&#xff0c;除了有始终不变的常量外&#xff0c;有些内容可能会经常…...

coqui-ai TTS 初步使用

项目地址&#xff1a;https://github.com/coqui-ai/TTS 1. 创建一个新的conda环境&#xff0c;如果自己会管理python环境也可以用其他方法 克隆项目下来 pip install -r requirements.txt # 安装依赖 pip install coqui-tts # 只要命令行工具的话 下载自己想要的模型 …...

matlab代码--卷积神经网络的手写数字识别

1.cnn介绍 卷积神经网络&#xff08;Convolutional Neural Network, CNN&#xff09;是一种深度学习的算法&#xff0c;在图像和视频识别、图像分类、自然语言处理等领域有着广泛的应用。CNN的基本结构包括输入层、卷积层、池化层&#xff08;Pooling Layer&#xff09;、全连…...

Scala—Map用法详解

Scala—Map用法详解 在 Scala 中&#xff0c;Map 是一种键值对的集合&#xff0c;其中每个键都是唯一的。Scala 提供了两种类型的 Map&#xff1a;不可变 Map 和可变 Map。 1. 不可变集合&#xff08;Map&#xff09; 不可变 Map 是默认的 Map 实现&#xff0c;位于 scala.co…...

极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【六】

GitLab 是一个全球知名的一体化 DevOps 平台&#xff0c;很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版&#xff0c;专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料&#xff1a; 极狐GitLab 官网极狐…...

ES6 、ESNext 规范、编译工具babel

ES6 、ESNext 规范、编译工具简介 ES6ES&#xff08;ECMAScript&#xff09; vs JS常量进一步探讨 obj对象的扩展面试&#xff1a;使对象属性也不能更改——Object.freeze(obj) 解构deconstruction变量的解构赋值&#xff1a;数组解构赋值&#xff1a;对象解构赋值&#xff1a;…...

DeepSpeed 配置文件(DeepSpeed Configuration Files)详解:中英文解释

中文版 本文详细介绍 DeepSpeed 配置文件&#xff0c;结合 4 卡 3090 的实际使用场景&#xff0c;重点解释各个参数的含义&#xff0c;并提供应对爆显存的方案。 DeepSpeed 配置文件详解&#xff1a;从基础到实战 DeepSpeed 是用于加速大规模分布式训练的重要工具&#xff0c…...

前端JavaScript(一)---基本介绍

Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言&#xff0c;主要目的是为了解决服务器端语言&#xff0c;比如Perl&#xff0c;遗留的速度问题&#xff0c;为客户提供更流畅的浏览效果。当时服务端需要对…...

文本处理之sed

1、概述 sed是文本编辑器&#xff0c;作用是对文本的内容进行增删改查。 和vim不一样&#xff0c;sed是按行进行处理。 sed一次处理一行内容&#xff0c;处理完一行之后紧接着处理下一行&#xff0c;一直到文件的末尾 模式空间&#xff1a;临时储存&#xff0c;修改的结果临…...

uniapp在App端定义全局弹窗,当打开关闭弹窗会触发onShow、onHide生命周期怎么解决?

在uniapp(App端)中实现自定义弹框&#xff0c;可以通过创建一个透明页面来实现。点击进入当前页面时&#xff0c;页面背景会变透明&#xff0c;用户可以根据自己的需求进行自定义&#xff0c;最终效果类似于弹框。 遇到问题&#xff1a;当打开弹窗(进入弹窗页面)就会触发当前页…...

计算机网络 实验七 NAT配置实验

一、实验目的 通过本实验理解网络地址转换的原理和技术&#xff0c;掌握扩展NAT/NAPT设计、配置和测试。 二、实验原理 NAT配置实验的原理主要基于网络地址转换&#xff08;NAT&#xff09;技术&#xff0c;该技术用于将内部私有网络地址转换为外部公有网络地址&#xff0c;从…...

数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!

文章目录 前言一、交换排序1.1 冒泡排序1.2 快速排序1.2.1 hoare版本 快排1.2.2 挖坑法 快排1.2.3 lomuto前后指针 快排 二、归并排序总结 前言 继上篇学习了排序的前面两个部分:直接插入排序和选择排序 今天我们来学习排序中常用的交换排序以及非常稳定的归并排序 快排可是有多…...

【kafka04】消息队列与微服务之Kafka 图形工具

Kafka 在 ZooKeeper 里面的存储结构 topic 结构 /brokers/topics/[topic] partition结构 /brokers/topics/[topic]/partitions/[partitionId]/state broker信息 /brokers/ids/[o...N] 控制器 /controller 存储center controller中央控制器所在kafka broker的信息 消费者 /c…...

剖析前后端 API 接口参数设计:JSON 数据结构化全攻略

在当今软件开发领域&#xff0c;前后端分离架构已成为主流趋势。而 API 接口作为前后端之间数据交互的桥梁&#xff0c;其设计的合理性对系统的可维护性和扩展性起着至关重要的作用。JSON&#xff08;JavaScript Object Notation&#xff09;作为一种轻量级的数据交换格式&…...

vue3 多种方式接受props,定义ref,reactive

定义props 1 第一种 interface AddType { dialogStudyVisible: boolean; } const props defineProps<AddType>(); 第二种 // const props defineProps({ // dialogStudyVisible:{ // type:Boolean, // default:false // } // }) 第三种 // const …...

逻辑处理器核心指纹修改

navigator.hardwareConcurrency的属性,可以用来获取CPU的逻辑处理器核心数。 1、navigator.hardwareConcurrency接口定义&#xff1a; third_party\blink\renderer\core\frame\navigator_concurrent_hardware.idl // https://html.spec.whatwg.org/C/#navigator.hardwarecon…...

如何制作项目网页

一、背景 许多论文里经常会有这样一句话Supplementary material can be found at https://hri-eu.github.io/Lami/&#xff0c;这个就是将论文中的内容或者补充视频放到一个网页上&#xff0c;以更好的展示他们的工作。因此&#xff0c;这里介绍下如何使用前人提供的模板制作我…...

mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?

随笔 从千万粉丝“何同学”抄袭开源项目说起&#xff0c;为何纯技术死路一条&#xff1f; 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 我们的系统应该配置哪些监控报警项&#xff1f; 监控报警系统如何实现自监控? java 老矣&#xff0c;尚能饭否&#xff…...

微信小程序之bind和catch

这两个呢&#xff0c;都是绑定事件用的&#xff0c;具体使用有些小区别。 官方文档&#xff1a; 事件冒泡处理不同 bind&#xff1a;绑定的事件会向上冒泡&#xff0c;即触发当前组件的事件后&#xff0c;还会继续触发父组件的相同事件。例如&#xff0c;有一个子视图绑定了b…...

Spark 之 入门讲解详细版(1)

1、简介 1.1 Spark简介 Spark是加州大学伯克利分校AMP实验室&#xff08;Algorithms, Machines, and People Lab&#xff09;开发通用内存并行计算框架。Spark在2013年6月进入Apache成为孵化项目&#xff0c;8个月后成为Apache顶级项目&#xff0c;速度之快足见过人之处&…...

从WWDC看苹果产品发展的规律

WWDC 是苹果公司一年一度面向全球开发者的盛会&#xff0c;其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具&#xff0c;对过去十年 WWDC 主题演讲内容进行了系统化分析&#xff0c;形成了这份…...

Mybatis逆向工程,动态创建实体类、条件扩展类、Mapper接口、Mapper.xml映射文件

今天呢&#xff0c;博主的学习进度也是步入了Java Mybatis 框架&#xff0c;目前正在逐步杨帆旗航。 那么接下来就给大家出一期有关 Mybatis 逆向工程的教学&#xff0c;希望能对大家有所帮助&#xff0c;也特别欢迎大家指点不足之处&#xff0c;小生很乐意接受正确的建议&…...

关于nvm与node.js

1 安装nvm 安装过程中手动修改 nvm的安装路径&#xff0c; 以及修改 通过nvm安装node后正在使用的node的存放目录【这句话可能难以理解&#xff0c;但接着往下看你就了然了】 2 修改nvm中settings.txt文件配置 nvm安装成功后&#xff0c;通常在该文件中会出现以下配置&…...

如何为服务器生成TLS证书

TLS&#xff08;Transport Layer Security&#xff09;证书是确保网络通信安全的重要手段&#xff0c;它通过加密技术保护传输的数据不被窃听和篡改。在服务器上配置TLS证书&#xff0c;可以使用户通过HTTPS协议安全地访问您的网站。本文将详细介绍如何在服务器上生成一个TLS证…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

Java入门学习详细版(一)

大家好&#xff0c;Java 学习是一个系统学习的过程&#xff0c;核心原则就是“理论 实践 坚持”&#xff0c;并且需循序渐进&#xff0c;不可过于着急&#xff0c;本篇文章推出的这份详细入门学习资料将带大家从零基础开始&#xff0c;逐步掌握 Java 的核心概念和编程技能。 …...

优选算法第十二讲:队列 + 宽搜 优先级队列

优选算法第十二讲&#xff1a;队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...

html-<abbr> 缩写或首字母缩略词

定义与作用 <abbr> 标签用于表示缩写或首字母缩略词&#xff0c;它可以帮助用户更好地理解缩写的含义&#xff0c;尤其是对于那些不熟悉该缩写的用户。 title 属性的内容提供了缩写的详细说明。当用户将鼠标悬停在缩写上时&#xff0c;会显示一个提示框。 示例&#x…...