当前位置: 首页 > 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…...

1、正则表达式

grep匹配 grep用来过滤文本内容&#xff0c;以匹配要查询的结果。 grep root /etc/passwd&#xff1a;匹配包含root的行 -m 数字&#xff1a;匹配几次后停止 -v&#xff1a;取反-i&#xff1a;忽略字符的大小写&#xff0c;默认的&#xff0c;可以不加-n&#xff1a…...

Airsim安装问题:This project was made with a different version of the Unreal Engine.

本文记录如何在 Ubuntu 18.04 系统中配置 AirSim 和 Unreal Engine 4.27&#xff0c;并成功打开默认的 Blocks 环境项目。 环境说明 系统&#xff1a;Ubuntu 18.04Unreal Engine 版本&#xff1a;4.27AirSim&#xff1a;主分支文件路径&#xff1a; Unreal Engine&#xff1a…...

java八股-分布式服务的接口幂等性如何设计?

文章目录 接口幂等token Redis分布式锁 原文视频链接&#xff1a;讲解的流程特别清晰&#xff0c;易懂&#xff0c;收获巨大 【新版Java面试专题视频教程&#xff0c;java八股文面试全套真题深度详解&#xff08;含大厂高频面试真题&#xff09;】 https://www.bilibili.com/…...

vscode python code runner执行乱码

打开vscode code runner插件配置&#xff0c;如图所示&#xff1a; 然后在setting.json修改运行python的默认命令&#xff1a; 将原来 替换成 "python":"set PYTHONIOENCODINGutf8 && python", 参考&#xff1a;Vscode——python环境输出中文乱…...

Java中的继承详解

在Java编程中&#xff0c;继承&#xff08;Inheritance&#xff09;是一种面向对象编程&#xff08;OOP&#xff09;的核心概念&#xff0c;它允许一个类&#xff08;称为子类或派生类&#xff09;继承另一个类&#xff08;称为父类或基类&#xff09;的属性和方法。通过继承&a…...

kafka进阶_2.存储消息

文章目录 一、存储消息介绍二、副本同步2.1、数据一致性2.2、HW在副本之间的传递 如果想了解kafka基础架构和生产者架构可以参考 kafka基础和 Kafka进阶_1.生产消息。 一、存储消息介绍 数据已经由生产者Producer发送给Kafka集群&#xff0c;当Kafka接收到数据后&#xff0c…...

如何启用本机GPU硬件加速猿大师播放器网页同时播放多路RTSP H.265 1080P高清摄像头RTSP视频流?

目前市面上主流播放RTSP视频流的方式是用服务器转码方案&#xff0c;这种方案的好处是兼容性更强&#xff0c;可以用于不同的平台&#xff0c;比如&#xff1a;Windows、Linux或者手机端&#xff0c;但是缺点也很明显&#xff1a;延迟高、播放高清或者同时播放多路视频视频容易…...

如何更好地设计SaaS系统架构

SaaS&#xff08;Software as a Service&#xff09;架构设计的核心目标是满足多租户需求、支持弹性扩展和高性能&#xff0c;同时保持低成本和高可靠性。一个成功的SaaS系统需要兼顾技术架构、资源利用、用户体验和商业目标。本文从以下几个方面探讨如何更好地设计SaaS系统架构…...

表征对齐在训练DiT模型中的重要性

Diffusion Models专栏文章汇总&#xff1a;入门与实战 前言&#xff1a;训练过DiT模型的读者们肯定有所体会&#xff0c;相比于UNet模型训练难度大了很多&#xff0c;模型不仅很难收敛&#xff0c;而且非常容易训崩&#xff0c;其中一个很重要的原因是没有进行表征对齐&#xf…...

Qt中CMakeLists.txt解释大全

‌Qt从Qt5.15版本开始正式推荐使用CMake进行项目管理‌。 在Qt 5.15之前&#xff0c;虽然可以使用CMake进行构建&#xff0c;但Qt官方更推荐使用qmake。 然而&#xff0c;从Qt5.15开始&#xff0c;Qt官方正式推荐使用CMake作为主要的构建系统&#xff0c;并在Qt 6中进一步加强了…...

网站建设无锡/口碑营销的产品

在发送通知邮件的时候&#xff0c; 假如可以有漂亮的邮件模板就更好了&#xff0c;但是出于安全的原因&#xff0c; 邮件一般不支持 link 或者 style 样式&#xff0c;只能通过内联的方式。找到了 The Automatic CSS Inliner Tool。有了自动转换工具&#xff0c;那就简单了。首…...

网站建设公司如何拓宽业务/seo关键词排名公司

作者&#xff1a;UncleChen来源&#xff1a;http://unclechen.github.io/最近在工作中遇到写一些API&#xff0c;这些API的请求参数非常多&#xff0c;嵌套也非常复杂&#xff0c;如果参数的校验代码全部都手动去实现&#xff0c;写起来真的非常痛苦。正好Spring轮子里面有一个…...

网站建设全包/青岛网络推广公司

16转换 10 进制&#xff1a; .toString("X"); 10转换 16 进制&#xff1a; .toString("X2");转载于:https://www.cnblogs.com/Iyce/archive/2012/11/15/2771627.html...

中国人民共和国住房和城乡建设部网站/广东疫情最新消息今天又封了

欢迎关注微信公众号&#xff1a; JueCode VasSonic是腾讯开源的一套完整的Hybrid方案&#xff0c;Github地址: VasSonic,官方定义是一套轻量级和高性能的Hybrid框架&#xff0c;专注于提升H5首屏加载速度。今天主要分享下其中的一个技术&#xff0c;并行加载技术。在开始之前先…...

网页设计短期培训/百度关键词优化排名技巧

什么是 Tmux Tmux 官方 Wiki 简单来说&#xff0c;Tmux 是一个能够让你一个窗口当多个窗口使用的终端模拟器。并且你还可以将它放到后台&#xff0c;等到想使用的时候再使用。 为什么要用 Tmux 在服务器上调试程序的时候&#xff0c;经常会打开好几个窗口&#xff0c;并且每个窗…...

关岭县建设局网站/磁力猫官网cilimao

这个下载方式是这么样的&#xff0c;可以适用于很多情况&#xff1a; jsp页面点击某个按钮&#xff0c;实现下载&#xff1b; jsp页面一加载完就下载&#xff1b; 演示一个一加载完就实现下载的&#xff1a; <script defer"defer" >if($("#defaultCours…...