Linux 如何创建逻辑卷并使用

news2024/11/28 19:36:10

一、逻辑卷的介绍

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

逻辑卷的诞生:如果对磁盘直接使用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 -l

Disk /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: 0xc1c4f2ab

   Device 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 ~] # pvs
  PV         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 ~] # pvs
  PV         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/sdc1
  VG Name               
  PV Size               1.00 GiB
  Allocatable           NO
  PE Size               0   
  Total PE              0
  Free PE               0
  Allocated PE          0
  PV UUID               5GMmBz-KjXz-iXOS-12lx-fBaF-W2db-3LRzXY
   

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

# 前提是磁盘没有进行分区,如果进行分区了需要删除分区,然后进行创建
[server root ~] # pvcreate /dev/sdb
  Device /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 deleted

Command (m for help): d
Selected partition 1
Partition 1 is deleted

Command (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]: y
  Wiping dos signature on /dev/sdc.
  Physical volume "/dev/sdc" successfully created.
[server root ~] # pvs
  PV         VG Fmt  Attr PSize  PFree 
  /dev/sdc      lvm2 ---  10.00g 10.00g

二、创建卷组(VG)

1、vgcreate创建 卷组

[server root ~] # fdisk /dev/sdc -l

Disk /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: 0x9c82f447

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     2099199     1048576   83  Linux
/dev/sdc2         2099200     6293503     2097152   83  Linux

[server root ~] # pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.
[server root ~] # pvcreate /dev/sdc2
  Physical volume "/dev/sdc2" successfully created.
[server root ~] # pvs
  PV         VG Fmt  Attr PSize PFree
  /dev/sdc1     lvm2 ---  1.00g 1.00g
  /dev/sdc2     lvm2 ---  2.00g 2.00g
[server root ~] # vgcreate vg1 /dev/sdc1
  Volume group "vg1" successfully created
[server root ~] # vgcreate vg2 /dev/sdc2 
  Volume group "vg2" successfully created
[server root ~] # 
[server root ~] # vgs
  VG  #PV #LV #SN Attr   VSize    VFree   
  vg1   1   0   0 wz--n- 1020.00m 1020.00m
  vg2   1   0   0 wz--n-   <2.00g   <2.00g
[server root ~] # pvs
  PV         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 ~] # vgs
  VG  #PV #LV #SN Attr   VSize    VFree   
  vg1   1   0   0 wz--n- 1020.00m 1020.00m
  vg2   1   0   0 wz--n-   <2.00g   <2.00g
[server root ~] # vgremove vg1
  Volume group "vg1" successfully removed
[server root ~] # vgs
  VG  #PV #LV #SN Attr   VSize  VFree 
  vg2   1   0   0 wz--n- <2.00g <2.00g
[server root ~] # vgremove vg2
  Volume group "vg2" successfully removed
[server root ~] # vgs
[server root ~] # 

2、vg卷组的扩容

# 在 /dev/sdc3 物理卷(PV)上创建了一个名为 vg2 的卷组(VG)
[server root ~] # vgcreate vg2 /dev/sdc3
  Physical volume "/dev/sdc3" successfully created.
  Volume group "vg2" successfully created

# pvs查看物理卷,vgs查看卷组信息
[server root ~] # pvs
  PV         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 ~] # vgs
  VG  #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/sdc1
  Volume group "vg2" successfully extended
[server root ~] # vgs
  VG  #PV #LV #SN Attr   VSize VFree
  vg2   2   0   0 wz--n- 3.99g 3.99g
[server root ~] # 


# 删除旧的卷组,创建新的卷组 vg2,并将 /dev/sdc1 作为物理卷(PV)添加进这个卷组。
# -s 8M 参数指定了物理扩展(PE)的大小为 8MB
[server root ~] # vgremove vg2
  Volume group "vg2" successfully removed
[server root ~] # 
[server root ~] # vgs
[server root ~] # vgcreate vg2 /dev/sdc1 -s 8M
  Volume group "vg2" successfully created
[server root ~] # vgdisplay vg2
  --- Volume group ---
  VG Name               vg2
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               1016.00 MiB
  PE Size               8.00 MiB
  Total PE              127
  Alloc PE / Size       0 / 0   
  Free  PE / Size       127 / 1016.00 MiB
  VG UUID               2l9GEi-6Kiw-RdcQ-vF9G-zKMx-B2y2-Pt8RnB
   

三、创建逻辑卷(LV)

1、lvcreate 命令创建语法

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

-n        表示逻辑卷的名字

-L        表示逻辑卷的大小

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

# 现在卷组只有一个,大小是1016M,没有相关逻辑卷的信息
[server root ~] # vgs
  VG  #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 vg2
  Rounding up size to full physical extent 304.00 MiB
  Logical volume "lv1" created.
[server root ~] # lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg2 -wi-a----- 304.00m                                                    
[server root ~] # lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg2 -wi-a----- 304.00m                                                    
[server root ~] # vgs
  VG  #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 vg2
  Volume group "vg2" has insufficient free space (89 extents): 100 required.
# 卷组总大小只有1016M,剩余712M,所有创建报错了,需要扩容vg2卷组
                                                    
[server root ~] # vgextend vg2 /dev/sdc3
  Volume group "vg2" successfully extended

# #PV变为2,表示现在卷组vg2包含了2个物理卷
# VSize增加为3.98GB,VFree也增加为大约3.69GB。
[server root ~] # vgs
  VG  #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 vg2
  Logical volume "lv2" created.
[server root ~] # lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  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, 221185

Allocating 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 ~] # lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg2 -wi-a----- 304.00m                                                    
  lv2  vg2 -wi-a----- 800.00m                                                    
[server root ~] # lvremove lv2
  Volume group "lv2" not found
  Cannot process volume group lv2
[server root ~] # lvremove /dev/vg2/lv2 
Do you really want to remove active logical volume vg2/lv2? [y/n]: y
  Logical volume "lv2" successfully removed
[server root ~] # lvremove /dev/vg2/lv1
Do you really want to remove active logical volume vg2/lv1? [y/n]: y
  Logical 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]: Y
  Wiping ext4 signature on /dev/vg2/lv1-ext4.
  Logical volume "lv1-ext4" created.

[server root ~] # lvs
  LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1-ext4 vg2 -wi-a----- 200.00m                                                    


# 创建大小为500M的lv2-xfs 逻辑卷
[server root ~] # lvcreate -n lv2-xfs vg2 -L 500M
  Rounding up size to full physical extent 504.00 MiB
  Logical volume "lv2-xfs" created.

[server root ~] # lvs
  LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1-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, 73729

Allocating 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 300M
  Rounding 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 700M
  Rounding 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 ~] # lvs
  LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1-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

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

好了下一篇文章见😁😁😁

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2249268.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入浅出摸透AIGC文生图产品SD(Stable Diffusion)

hihi,朋友们,时隔半年(24年11月),终于能腾出时间唠一唠SD了🤣,真怕再不唠一唠,就轮不到SD了,技术更新换代是在是太快! 朋友们,最近(24年2月)是真的没时间整理笔记,每天都在疯狂的学习Stable Diffusion和WebUI & ComfyUI,工作实在有点忙,实践期间在飞书上…

OSI七层模型和TCP/IP五层模型详细介绍

这里写目录标题 一.OSI含义二.OSI七层模型1.应用层2.表示层3.会话层4.传输层5.网络层6.数据链路层7.物理层 TCP/IP五层协议1.应用层2.运输层运行在TCP上的协议运行在UDP上的协议 3.网络层IP协议配套使用的协议 4.数据链路层 四.网络协议分层的好处 一.OSI含义 OSI即是开放式通…

360推出全新的生成式 AI 搜索产品:纳米搜索,要重塑搜索产品

【大力财经】直击互联网最前线&#xff1a;360 集团在 2024 年 11 月 27 日开发布会&#xff0c;重磅推出了一款全新的生成式 AI 搜索产品——纳米搜索&#xff0c;并且已经上架到苹果 App Store 以及应用宝等安卓应用商店&#xff0c;直接与百度、阿里夸克、秘塔 AI、Perplexi…

【超全】目标检测模型分类对比与综述:单阶段、双阶段、有无锚点、DETR、旋转框

《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发】2.【车牌识别与自动收费管理系统开发】3.【手势识别系统开发】4.【人脸面部活体检测系统开发】5.【图片风格快速迁移软件开发】6.【人脸表表情识别系统】7.【…

c#:winform引入bartender

1、vs新建项目 ①选择Windows窗体应用&#xff08;.NET Framework&#xff09; 2、将bartender引入vs中 ①找到bartender的安装目录&#xff0c;复制Seagull.BarTender.Print.dll文件 ②粘贴到项目->bin->Debug文件&#xff0c;并可创建Model文件夹&#xff1a;为了存放…

vue 实现关键字高亮效果

vue 实现关键字高亮效果 这是啥子意思呢&#xff0c;就是类似于百度搜索&#xff0c;根据关键词搜索结果&#xff0c;搜索结果中&#xff0c;与关键词相同的字显示红色&#xff0c;仅此而已&#xff0c;没有什么大的功能。简单写一下demo。 环境 我使用的是 vue3 ts 的语法来…

初始Python篇(7)—— 正则表达式

找往期文章包括但不限于本期文章中不懂的知识点&#xff1a; 个人主页&#xff1a;我要学编程(ಥ_ಥ)-CSDN博客 所属专栏&#xff1a; Python 目录 正则表达式的概念 正则表达式的组成 元字符 限定符 其他字符 正则表达式的使用 正则表达式的常见操作方法 match方法的…

[DL]深度学习_扩散模型正弦时间编码

1 扩散模型时间步嵌入 1.1 时间步正弦编码 在扩散模型按时间步 t 进行加噪去噪过程时&#xff0c;需要包括反映噪声水平的时间步长 t 作为噪声预测器的额外输入。但是最初与图像配套的时间步 t 是数字&#xff0c;需要将代表时间步 t 的数字编码为向量嵌入。嵌入时间向量的宽…

【Linux】网络基本配置命令

一、使用网络配置命令 1.常用网络配置文件 1.1. /etc/hosts “/etc/hosts”文件保存着IP地址和主机名或域名的静态映射关系。当用户使用一个主机名或域名时&#xff0c;系统会在该文件中查找与它对应的IP地址。 [rootlocalhost ~]# cat /etc/hosts 127.0.0.1 localhost l…

如何搭建一个小程序:从零开始的详细指南

在当今数字化时代&#xff0c;小程序以其轻便、无需下载安装即可使用的特点&#xff0c;成为了连接用户与服务的重要桥梁。无论是零售、餐饮、教育还是娱乐行业&#xff0c;小程序都展现了巨大的潜力。如果你正考虑搭建一个小程序&#xff0c;本文将为你提供一个从零开始的详细…

学习threejs,使用设置lightMap光照贴图创建阴影效果

&#x1f468;‍⚕️ 主页&#xff1a; gis分享者 &#x1f468;‍⚕️ 感谢各位大佬 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍⚕️ 收录于专栏&#xff1a;threejs gis工程师 文章目录 一、&#x1f340;前言1.1 ☘️THREE.MeshLambertMaterial…

【前端】JavaScript中的柯里化(Currying)详解及实现

博客主页&#xff1a; [小ᶻ☡꙳ᵃⁱᵍᶜ꙳] 本文专栏: 前端 文章目录 &#x1f4af;前言&#x1f4af;什么是柯里化&#xff1f;&#x1f4af;柯里化的特点&#x1f4af;柯里化的简单示例&#x1f4af;通用的柯里化实现&#x1f4af;柯里化让代码更易读的原因&#x1f4af…

springboot 整合 rabbitMQ (延迟队列)

前言&#xff1a; 延迟队列是一个内部有序的数据结构&#xff0c;其主要功能体现在其延时特性上。这种队列存储的元素都设定了特定的处理时间&#xff0c;意味着它们需要在规定的时间点或者延迟之后才能被取出并进行相应的处理。简而言之&#xff0c;延时队列被设计用于存放那…

Java代码操作Zookeeper(使用 Apache Curator 库)

1. Zookeeper原生客户端库存在的缺点 复杂性高&#xff1a;原生客户端库提供了底层的 API&#xff0c;需要开发者手动处理很多细节&#xff0c;如连接管理、会话管理、异常处理等。这增加了开发的复杂性&#xff0c;容易出错。连接管理繁琐&#xff1a;使用原生客户端库时&…

Django实现智能问答助手-基础配置

设置 Django 项目、创建应用、定义模型和视图、实现问答逻辑&#xff0c;并设计用户界面。下面是一步一步的简要说明&#xff1a; 目录&#xff1a; QnAAssistant/ # 项目目录 │ ├── QnAAssistant/ # 项目文件夹 │ ├── init.py # 空文件 │ ├── settings.py # 项目配…

【ESP32CAM+Android+C#上位机】ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输

前言: 本项目实现ESP32-CAM在STA或AP模式下基于UDP与手机APP或C#上位机进行视频流/图像传输。本项目包含有ESP32源码(arduino)、Android手机APP源码以及C#上位机源码,本文对其工程项目的配置使用进行讲解。实战开发,亲测无误。 AP模式,就是ESP32发出一个WIFI/热点提供给电…

从〇开始深度学习(0)——背景知识与环境配置

从〇开始深度学习(0)——背景知识与环境配置 文章目录 从〇开始深度学习(0)——背景知识与环境配置写在前面1.背景知识1.1.Pytorch1.2.Anaconda1.3.Pycharm1.4.CPU与GPU1.5.整体关系 2.环境配置2.1.准备工作2.1.1.判断有无英伟达显卡2.1.2.清理电脑里的旧环境 2.1.安装Anaconda…

mac下Gpt Chrome升级成GptBrowser书签和保存的密码恢复

cd /Users/自己的用户名/Library/Application\ Support/ 目录下有 GPT\ Chrome/ Google/ GptBrowser/ GPT\ Chrome 为原来的chrome浏览器的文件存储目录. GptBrowser 为升级后chrome浏览器存储目录 书签所在的文件 Bookmarks 登录账号Login 相关的文件 拷贝到GptBrow…

圆域函数的傅里叶变换和傅里叶逆变换

空域圆域函数的傅里叶变换 空域圆域函数&#xff08;也称为空间中的圆形区域函数&#xff09;通常指的是在二维空间中&#xff0c;以原点为中心、半径为 a a a的圆内取值为1&#xff0c;圆外取值为0的函数。这种函数可以表示为&#xff1a; f ( x , y ) { 1 if x 2 y 2 ≤ …

Java基础——类型转化(强制转化)

目录 1.数字间的类型转换 &#xff08;1&#xff09; 隐式类型转换 &#xff08;2&#xff09;显式类型转换&#xff08;强制类型转换&#xff09; 2.类对象间的强制转换 &#xff08;1&#xff09; 向上转型 &#xff08;2&#xff09; 向下转型 将一个类型强制转换成另…