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的缩容(不包含)
逻辑卷创建顺序:
- pvcreate创建物理卷
- vgcreate 创建卷组
- lvcreate 创建逻辑卷
- 格式化逻辑卷(mkfs)
- 挂载逻辑卷(mount)
逻辑卷删除顺序:
- 卸载逻辑卷(umount)
- lvremove 删除逻辑卷
- vgreduce 从卷组中移除物理卷
- vgremove 删除卷组
- 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 如何创建逻辑卷并使用
一、逻辑卷的介绍 生成环境中逻辑卷使用率很高 逻辑卷的诞生:如果对磁盘直接使用fdisk分区,那么这中分区,我们叫做Linux的标准分区,Linux的标准分区格式化成文件系统之后,挂载使用,那么一旦文件系统的空间…...
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)
大家好,今天我们来讲讲我们的老伙计-变量,在哪一门编程语言中,变量的作用都是不可或缺的,那么下面我们就来详细了解一下java中的变量。 一.变量概念 在程序中,除了有始终不变的常量外,有些内容可能会经常…...
coqui-ai TTS 初步使用
项目地址:https://github.com/coqui-ai/TTS 1. 创建一个新的conda环境,如果自己会管理python环境也可以用其他方法 克隆项目下来 pip install -r requirements.txt # 安装依赖 pip install coqui-tts # 只要命令行工具的话 下载自己想要的模型 …...
matlab代码--卷积神经网络的手写数字识别
1.cnn介绍 卷积神经网络(Convolutional Neural Network, CNN)是一种深度学习的算法,在图像和视频识别、图像分类、自然语言处理等领域有着广泛的应用。CNN的基本结构包括输入层、卷积层、池化层(Pooling Layer)、全连…...
Scala—Map用法详解
Scala—Map用法详解 在 Scala 中,Map 是一种键值对的集合,其中每个键都是唯一的。Scala 提供了两种类型的 Map:不可变 Map 和可变 Map。 1. 不可变集合(Map) 不可变 Map 是默认的 Map 实现,位于 scala.co…...
极狐GitLab 17.6 正式发布几十项与 DevSecOps 相关的功能【六】
GitLab 是一个全球知名的一体化 DevOps 平台,很多人都通过私有化部署 GitLab 来进行源代码托管。极狐GitLab 是 GitLab 在中国的发行版,专门为中国程序员服务。可以一键式部署极狐GitLab。 学习极狐GitLab 的相关资料: 极狐GitLab 官网极狐…...
ES6 、ESNext 规范、编译工具babel
ES6 、ESNext 规范、编译工具简介 ES6ES(ECMAScript) vs JS常量进一步探讨 obj对象的扩展面试:使对象属性也不能更改——Object.freeze(obj) 解构deconstruction变量的解构赋值:数组解构赋值:对象解构赋值:…...
DeepSpeed 配置文件(DeepSpeed Configuration Files)详解:中英文解释
中文版 本文详细介绍 DeepSpeed 配置文件,结合 4 卡 3090 的实际使用场景,重点解释各个参数的含义,并提供应对爆显存的方案。 DeepSpeed 配置文件详解:从基础到实战 DeepSpeed 是用于加速大规模分布式训练的重要工具,…...
前端JavaScript(一)---基本介绍
Javascript是一种由Netscape(网景)的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。当时服务端需要对…...
文本处理之sed
1、概述 sed是文本编辑器,作用是对文本的内容进行增删改查。 和vim不一样,sed是按行进行处理。 sed一次处理一行内容,处理完一行之后紧接着处理下一行,一直到文件的末尾 模式空间:临时储存,修改的结果临…...
uniapp在App端定义全局弹窗,当打开关闭弹窗会触发onShow、onHide生命周期怎么解决?
在uniapp(App端)中实现自定义弹框,可以通过创建一个透明页面来实现。点击进入当前页面时,页面背景会变透明,用户可以根据自己的需求进行自定义,最终效果类似于弹框。 遇到问题:当打开弹窗(进入弹窗页面)就会触发当前页…...
计算机网络 实验七 NAT配置实验
一、实验目的 通过本实验理解网络地址转换的原理和技术,掌握扩展NAT/NAPT设计、配置和测试。 二、实验原理 NAT配置实验的原理主要基于网络地址转换(NAT)技术,该技术用于将内部私有网络地址转换为外部公有网络地址,从…...
数据结构——排序算法第二幕(交换排序:冒泡排序、快速排序(三种版本) 归并排序:归并排序(分治))超详细!!!!
文章目录 前言一、交换排序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 数据结构化全攻略
在当今软件开发领域,前后端分离架构已成为主流趋势。而 API 接口作为前后端之间数据交互的桥梁,其设计的合理性对系统的可维护性和扩展性起着至关重要的作用。JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式&…...
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接口定义: 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/,这个就是将论文中的内容或者补充视频放到一个网页上,以更好的展示他们的工作。因此,这里介绍下如何使用前人提供的模板制作我…...
mongodb/redis/neo4j 如何自己打造一个 web 数据库可视化客户端?
随笔 从千万粉丝“何同学”抄袭开源项目说起,为何纯技术死路一条? 数据源的统一与拆分 监控报警系统的指标、规则与执行闭环 我们的系统应该配置哪些监控报警项? 监控报警系统如何实现自监控? java 老矣,尚能饭否ÿ…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...
Ubuntu系统下交叉编译openssl
一、参考资料 OpenSSL&&libcurl库的交叉编译 - hesetone - 博客园 二、准备工作 1. 编译环境 宿主机:Ubuntu 20.04.6 LTSHost:ARM32位交叉编译器:arm-linux-gnueabihf-gcc-11.1.0 2. 设置交叉编译工具链 在交叉编译之前&#x…...
边缘计算医疗风险自查APP开发方案
核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...
MODBUS TCP转CANopen 技术赋能高效协同作业
在现代工业自动化领域,MODBUS TCP和CANopen两种通讯协议因其稳定性和高效性被广泛应用于各种设备和系统中。而随着科技的不断进步,这两种通讯协议也正在被逐步融合,形成了一种新型的通讯方式——开疆智能MODBUS TCP转CANopen网关KJ-TCPC-CANP…...
高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【服务器压力测试】本地PC电脑作为服务器运行时出现卡顿和资源紧张(Windows/Linux)
要让本地PC电脑作为服务器运行时出现卡顿和资源紧张的情况,可以通过以下几种方式模拟或触发: 1. 增加CPU负载 运行大量计算密集型任务,例如: 使用多线程循环执行复杂计算(如数学运算、加密解密等)。运行图…...
Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...
uniapp手机号一键登录保姆级教程(包含前端和后端)
目录 前置条件创建uniapp项目并关联uniClound云空间开启一键登录模块并开通一键登录服务编写云函数并上传部署获取手机号流程(第一种) 前端直接调用云函数获取手机号(第三种)后台调用云函数获取手机号 错误码常见问题 前置条件 手机安装有sim卡手机开启…...
ubuntu22.04有线网络无法连接,图标也没了
今天突然无法有线网络无法连接任何设备,并且图标都没了 错误案例 往上一顿搜索,试了很多博客都不行,比如 Ubuntu22.04右上角网络图标消失 最后解决的办法 下载网卡驱动,重新安装 操作步骤 查看自己网卡的型号 lspci | gre…...
Matlab实现任意伪彩色图像可视化显示
Matlab实现任意伪彩色图像可视化显示 1、灰度原始图像2、RGB彩色原始图像 在科研研究中,如何展示好看的实验结果图像非常重要!!! 1、灰度原始图像 灰度图像每个像素点只有一个数值,代表该点的亮度(或…...
