Linux基础笔记18 | 磁盘分区管理

这篇具有很好参考价值的文章主要介绍了Linux基础笔记18 | 磁盘分区管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

fdisk 分区工具

fdisk 这个古老的软件并不认识 GPT ,所以 fdisk 只支持 MBR 的分区模式,且磁盘小于2T,大于了就不能使用 fdisk 进行分区了

新磁盘的分区

一块新加的磁盘的分区方式

检查系统中需要分区的磁盘

fdisk -l

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

对新磁盘进行磁盘分区

fdisk /dev/sdb

进入交互式分区界面

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

键入 m 获取帮助信息

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

常用的命令选项

  • d:删除一个分区
  • n:添加一个新分区
  • q:退出而不保存更改
  • w:将分区表写入磁盘并退出
  • m:打印帮助菜单
  • p:打印分区表信息
  • v:验证分区表

分区过程

命令(输入 m 获取帮助):n										# n:新建一个分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p										# p:分区类型是主分区
分区号 (1-4,默认 1):1									 # 选择分区号
起始 扇区 (2048-104857599,默认为 2048)# 起始扇区(默认就好)
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):+10G	# 分区大小
分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):w							# 写入磁盘并退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@vm10 ~]#

查看新建的分区

fdisk -l

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

格式化新建的分区

mkfs.xfs /dev/sdb1 或者mkfs.ext4 /dev/sdb1 不同文件系统类型(正常来说不应该加 -f ,-f 意思是强制覆盖现有的文件系统)

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

最后挂载使用

mount /dev/sdb1 /home/ceshi/:将分区 sdb1 挂载在 /home/ceshi 目录下

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

以上就是完整的一个新磁盘从分区到被系统使用的一个参考过程!

原有磁盘基础上分区

有时候会遇到有些磁盘还剩一点空间,需要在原来基础上增加分区,具体可以参考以下分区流程

确定待增加分区的磁盘信息

fdisk -l

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

进入分区交互界面

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

接着分新的分区即可

[root@vm10 home]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):n											# 键入 n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)						# 键入 p
   e   extended
Select (default p): p
分区号 (2-4,默认 2)# 默认回车就行
起始 扇区 (20973568-104857599,默认为 20973568)# 默认回车就行
将使用默认值 20973568
Last 扇区, +扇区 or +size{K,M,G} (20973568-104857599,默认为 104857599):+10G	# 设置分区大小
分区 2 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):w						# 写入磁盘
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.		# 有报错
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@vm10 home]#
[root@vm10 home]# partprobe /dev/sdb

如遇到以上报错信息可通过partprobe /dev/sdb解决

partprobe 命令用于重读分区表,将磁盘分区表变化信息通知内核,请求操作系统重新加载分区表。

查看新的分区信息

fdisk -l

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

再格式化成对应的文件系统,挂载使用就行

df -h

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

逻辑分区的参考

按照我们之前说的,MBR 方式的分区最多支持4个分区,如何进行更多分区操作呢?

先看下 “p+p+p+p” 情况下继续分区的情况

提示如果要创建4个以上的分区,必须使用一个扩展分区类型

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

我们删除一个主分区,创建一个扩展分区,通过扩展分区创建出逻辑分区

命令(输入 m 获取帮助):n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): e										## 键入 e 创建出一个扩展分区
已选择分区 4
起始 扇区 (62916608-104857599,默认为 62916608):
将使用默认值 62916608
Last 扇区, +扇区 or +size{K,M,G} (62916608-104857599,默认为 104857599):+10G	# 设置扩展分区大小
分区 4 已设置为 Extended 类型,大小设为 10 GiB

命令(输入 m 获取帮助):n					## 再次创建新分区,这个时候就是逻辑分区了
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (62918656-83888127,默认为 62918656):
将使用默认值 62918656
Last 扇区, +扇区 or +size{K,M,G} (62918656-83888127,默认为 83888127):+5G	## ;逻辑分区大小不超过扩展分区
分区 5 已设置为 Linux 类型,大小设为 5 GiB

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: 设备或资源忙.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
正在同步磁盘。
[root@vm10 home]# partprobe /dev/sdb

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

实验以下扩展分区大小是否限制了逻辑分区大小

确实是和扩展分区大小相关联的

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

基于命令行非交互式创建分区方法

方法参考:

Linux管理文件系统(2):分区和创建文件系统 | 骏马金龙 (junmajinlong.com)

基于表述输出和管道传输

现在对一块完整的磁盘进行演示

echo -e "n\np\n1\n\n+10G\nw"|fdisk /dev/sdb

  • \n:换行,所以基于命令行的分区方式很简单的
  • 新建分区–分区类型为主分区–分区号是1–起始扇区回车选择默认–分区大小是10G–保存更改信息
[root@vm10 home]# echo -e "n\np\n1\n\n+10G\nw"|fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。


命令(输入 m 获取帮助):Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): 分区号 (1-4,默认 1):起始 扇区 (2048-104857599,默认为 2048):将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-104857599,默认为 104857599):分区 1 已设置为 Linux 类型,大小设为 10 GiB

命令(输入 m 获取帮助):The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@vm10 home]#

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

parted 分区工具

为了能支持大于2T的磁盘空间,需要使用 GPT 格式进行分区,需要用到 parted 工具了

  • parted 工具,每一步操作都是直接写入磁盘的,不同于 fdisk 和 gdisk 需要从内存的结果保存到磁盘中

新磁盘下的分区

进入 parted 分区界面

parted /dev/sdb

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

键入”help“查看帮助

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

进行分区操作

(parted) mklabel			## 设置分区类型为 gpt
新的磁盘标签类型? gpt			
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will be lost. Do you want
to continue?
是/Yes/否/No? yes
(parted) mkpart				## 开始分区
分区名称?  []? p			## 分区类型
文件系统类型?  [ext2]? xfs	## 文件系统类型
起始点? 1				## 磁盘的1M开始分区,默认单位是1M
结束点? 10G			## 到10GB的位置截至
(parted)
(parted) q				## 退出
信息: You may need to update /etc/fstab.

查看分区后的信息

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

格式化后挂载文件系统使用

mkfs.xfs -f /dev/sdb1
mount /dev/sdb1 /home/ceshi

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

原有磁盘下继续分区

进入交互式中

parted /dev/sdb

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

键入 print 打印分区信息

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

分区过程

(parted) print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  标志
 1      1049kB  10.0GB  9999MB  xfs          p

(parted) mkpart								## 开始分区
分区名称?  []? p							## 分区类型
文件系统类型?  [ext2]? xfs					## 文件系统
起始点? 10000								## 起始点:上一个分区下一个点
结束点? 20G							## 空间大小
(parted) print								## 打印分区表
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 53.7GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name  标志
 1      1049kB  10.0GB  9999MB  xfs          p
 2      10.0GB  20.0GB  9999MB               p

(parted)

格式化后挂载使用

mkfs.xfs -f /dev/sdb2
mount /dev/sdb2 /home/ceshi1

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

多个分区的实验

来看看 gpt 下能够分区的数量

重复上面的操作进行分区操作,可以看到我分出来了很多很多主分区,基本不受限制了

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

基于命令行非交互式创建分区

一次只能一个动作

parted /dev/sdb mklabel gpt
parted /dev/sdb mkpart p xfs 1 10G
parted /dev/sdb mkpart p xfs 10G 20G

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

LVM 磁盘分区管理

LVM 相关概念与实现机制

Logical Volume Manager:LVM ,弹性分区,随时随地对分区进行扩缩容

  • 大多数发行版都会内置这个东西
  • 基于内核的一种逻辑卷管理器
  • 适用于管理大存储设备

相关概念

  1. PV:Physical Volume 物理卷

    • 磁盘分区后还未格式化成文件系统的时候可以通过 pvcreate 命令创建为 pv
    • pv 要求分区的 system ID为 8e,即 LVM 格式的系统标识符

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  2. VG:Volume Group 卷组

    • 多个 PV 组合起来,通过 vgcreate 命令创建成卷组
    • 创建 VG 的时候,会将所有空间按照指定大小的 PE 划分为很多个 PE
    • LVM 模式下的存储都是以 PE 为单元
  3. PE:Physical Extend

    • 数据都是存储的地方
  4. LV:Logical Volume

    • VG 中有很多 PE 单元,可以指定多少个 PE 或者大小来再次划分,划分后统称为 LV,LV 就相当于划分了分区了,对 LV 在进行文件系统格式化就可以拿来使用了
  5. LE:logical extent

    • LV 中的逻辑存储单元,和 PE 大小是一样的,从 VG 中划分 LV,就是分配 PE 单元,只不过划分 LV 后,PE 就被称之为 LE 了

实现机制

  • 一个简单的图解

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  • LV 中的 PE 可能来自多个 PV,在向 LV 写入数据时候,分几种机制
    • 线性模式:先写完来自于同一个PV 的 PE,再写来自下一个 PV 的 PE
    • 条带模式:一份数据拆分成多份,分别写入该 LV 对应的每个 PV 中,读写性能好
    • 默认使用的线性模式,因为扩缩容方便,LVM 最有用的也就是动态扩缩容

LVM 相关命令解析

PV

命令 说明
pvcreate 创建 PV
pvscan 列出所有的 PV
pvdisplay 列出 PV 属性
pvremove 移除 PV
pvmove 移除 PV 中的数据
[root@vm10 home]# pvdisplay
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               LeNFHF-2miV-2oYy-KDxG-Y0JQ-V2eS-ldi1ny

  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               centos
  PV Size               80.00 GiB / not usable 4.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              20479
  Free PE               1279
  Allocated PE          19200
  PV UUID               7QUzi3-FbDr-m3ud-YYOn-7IFS-gCmk-3IVEDW

[root@vm10 home]# pvscan
  PV /dev/sda2   VG centos          lvm2 [<19.00 GiB / 0    free]
  PV /dev/sda3   VG centos          lvm2 [<80.00 GiB / <5.00 GiB free]
  Total: 2 [98.99 GiB] / in use: 2 [98.99 GiB] / in no VG: 0 [0   ]##PV 的总容量/已经使用的/未使用的
[root@vm10 home]# pvdisplay -m
  --- Physical volume ---
  PV Name               /dev/sda2
  VG Name               centos
  PV Size               <19.00 GiB / not usable 3.00 MiB
  Allocatable           yes (but full)
  PE Size               4.00 MiB
  Total PE              4863
  Free PE               0
  Allocated PE          4863
  PV UUID               LeNFHF-2miV-2oYy-KDxG-Y0JQ-V2eS-ldi1ny

  --- Physical Segments ---
  Physical extent 0 to 511:					## 0-511个PE在使用
    Logical volume      /dev/centos/swap
    Logical extents     0 to 511		  ## 该PE在LV中的第0个LE位置上,这个地方是用满了的
  Physical extent 512 to 4862:
    Logical volume      /dev/centos/root
    Logical extents     0 to 4350

  --- Physical volume ---
  PV Name               /dev/sda3
  VG Name               centos
  PV Size               80.00 GiB / not usable 4.00 MiB
  Allocatable           yes
  PE Size               4.00 MiB
  Total PE              20479
  Free PE               1279
  Allocated PE          19200
  PV UUID               7QUzi3-FbDr-m3ud-YYOn-7IFS-gCmk-3IVEDW

  --- Physical Segments ---
  Physical extent 0 to 19199:					## 0-19199个PE在使用
    Logical volume      /dev/centos/root
    Logical extents     4351 to 23550			## PE在第4351个LE位置上
  Physical extent 19200 to 20478:			## 19200-20478序号的PE没被使用
    FREE

[root@vm10 home]#

VG

命令 说明
vgcreate 创建 VG
vgscan 列出所有的 VG
vgdisplay 列出 VG 属性
vgremove 移除 VG,删除 VG
vgreduce 从 VG 中移除 PV
vgextend 将 PV 添加到 VG 中
vgchange 修改 VG 属性
  • vgscan 搜寻有几个 vg 并显示 vg 的基本属性
  • vgcreate 是创建 vg
  • vgdisplay 是列出 vg 的详细信息
  • vgremove 是删除整个v g
  • vgextend 用于扩展 vg 即将 pv 添加到 vg 中
  • vgreduce 是将 pv 移除出 vg
  • vgchange 用于改变 vg 的属性,如修改 vg 的状态为激活状态或未激活状态

LV

命令 说明
lvcreate 创建 LV
lvscan 扫描并列出所有的 LV
lvdisplay 列出 LV 属性信息
lvremove 移除 LV,即删除 LV
lvreduce(lvresize) 缩小 LV 容量
lvextend(lvresize) 增大 LV 容量
lvresize 改变 LV 容量

LVM 分区过程参考

根据上述的命令操作方法,来进行一个 LVM 分区过程

查看需要进行分区的磁盘信息

fdisk -l

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

先使用 fdisk 进行标准化分区,不需要格式化

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

其中2个分区创建一个 PV

[root@vm10 home]# pvcreate /dev/sdb1 /dev/sdb2
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sdb1.
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y
  Wiping xfs signature on /dev/sdb2.
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
[root@vm10 home]#

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

创建一个测试 VG

[root@vm10 home]# vgcreate test_vg /dev/sdb{1,2}
  Volume group "test_vg" successfully created
[root@vm10 home]# vgdisplay test_vg
  --- Volume group ---
  VG Name               test_vg
  System ID
  Format                lvm2
  Metadata Areas        2
  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                2
  Act PV                2
  VG Size               19.99 GiB
  PE Size               4.00 MiB
  Total PE              5118
  Alloc PE / Size       0 / 0
  Free  PE / Size       5118 / 19.99 GiB
  VG UUID               3YMuNV-Jxmr-rgdN-gl5z-YRRw-IGq1-gSiZqW

[root@vm10 home]#

创建 lv

[root@vm10 home]# lvcreate -n test_lv1 -L 1G test_vg	## -n指定lv名称 -L 指定大小 -l 指定PE数量
  Logical volume "test_lv1" created.
[root@vm10 home]# lvcreate -n test_lv2 -l 2000 test_vg
  Logical volume "test_lv2" created.
[root@vm10 home]# lvdisplay
  --- Logical volume ---
  LV Path                /dev/test_vg/test_lv1
  LV Name                test_lv1
  VG Name                test_vg
  LV UUID                1A2yQf-9Mr7-ri1Y-gzK4-oyj6-Nr4C-WEjQ43
  LV Write Access        read/write
  LV Creation host, time vm10, 2022-09-08 15:08:47 +0800
  LV Status              available
  # open                 0
  LV Size                1.00 GiB
  Current LE             256
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

  --- Logical volume ---
  LV Path                /dev/test_vg/test_lv2
  LV Name                test_lv2
  VG Name                test_vg
  LV UUID                OM2Jvm-uYDa-9LMH-8uhP-QVwo-vqF5-LUMK3E
  LV Write Access        read/write
  LV Creation host, time vm10, 2022-09-08 15:09:18 +0800
  LV Status              available
  # open                 0
  LV Size                7.81 GiB
  Current LE             2000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:3

  --- Logical volume ---
  LV Path                /dev/centos/swap
  LV Name                swap
  VG Name                centos
  LV UUID                SGdwb8-TfNw-arTQ-ic4M-OwAB-1G68-PMYdBS
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-07-20 13:57:18 +0800
  LV Status              available
  # open                 2
  LV Size                2.00 GiB
  Current LE             512
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:1

  --- Logical volume ---
  LV Path                /dev/centos/root
  LV Name                root
  VG Name                centos
  LV UUID                3GSliK-ZJFv-hKnR-756n-z1wR-bUfc-2c0tiU
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2022-07-20 13:57:19 +0800
  LV Status              available
  # open                 1
  LV Size                <92.00 GiB
  Current LE             23551
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0

[root@vm10 home]#

格式化成文件系统并挂载使用

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

LVM 的扩容操作

扩容的实质

  • 将 vg 中闲置的 PE 添加到 lv 中
  • 没有闲置的 pe,可以添加 pv,将 pv 空间加入到 vg 中

实验操作1参考:vg 中还有未被使用的 pe

  1. 查看 vg 中的使用情况:还有2862 个 pe 没有使用,大约11G大小

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  2. 直接将闲置的 pe 添加到 lv 中:-l 使用PE数量进行添加;-L 使用大小进行添加

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  3. 调整文件系统大小:is OK

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

实验操作2参考:vg 中没有可分配的 pe

  1. 查看 vg 中的使用情况:用完了

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  2. 用完了我们就需要把额外的 pv 添加到 vg 当中去

    • 再利用分区出来的 sdb3 和sdb4 创建一个 pv

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

    • 创建 pv

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

    • 将创建好的 pv 添加到 vg 中

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  3. 再次查看 vg 的使用情况:有了闲置的 pe

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  4. 对 lv 进行添加后,重新调整文件系统大小:is ok

    [root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

LVM 的缩容操作

理论来说,我们不考虑磁盘的缩容操作

  • 只能用 ext4 的文件格式来演示
  • xfs 的文件系统只能扩容,不能缩容,如果要缩容,就只能备份数据后,删掉重建 lv,再把数据恢复过去

我们先把之前的操作都撤销

其实也不必如此,就当练习了

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

我们再来创建基于 ext4 类型的文件系统

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

查看 LVM 基本相关信息:我们要将 /dev/sdb4 的10G这个磁盘给缩容掉

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

先卸载设备

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

使用 resize2fs 收缩文件系统的容量为目标大小

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

缩容 lv

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

再次查看 PV 上的闲置 PE情况

闲置的 pe 分布在sdb3 和sdb4上,所以我们就可以直接直接移除sdb4的pv

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

从 vg 中移除 pv

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

再删除 pv 就可以了:又是一个正常的分区

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

验证一下缩容后的是否能够正常使用:is OK

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

LVM 中的 snapshot 快照技术

参考链接:使用LVM | 骏马金龙 (junmajinlong.com)

  • 类似于软件的还原时间点功能
  • 针对某一个lv逻辑卷操作
  • 快照卷的大小应该尽量等同于 LV 逻辑卷的容量
  • 功能仅一次有效,一旦被还原后则会自动立即删除

先看下LVM 中的 VG 信息

可以看到已经使用了2000个PE,大约7.8个G,还剩大约12个G

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

在挂载目录下准备文件

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

生成快照卷

  • -L 参数指定切割大小

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

查看快照卷

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

模拟数据故障

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

挂载快照

问题处理:无法挂载这个磁盘(2个逻辑卷使用的UUID一样了,xfs文件系统不允许,加参数再挂载一下)

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

还原数据

可以从挂载点里面拷贝数据过去了,这就是最简单的使用方法了

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

合并快照的方式

  1. 准备好测试数据

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  1. 做一下快照

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  1. 模拟故障

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  1. 卸载逻辑卷挂载点和快照卷

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  1. 合并快照(要确定卸载了挂载点):合并以后就会删除快照

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维

  1. 重新挂载逻辑卷:被破坏的数据恢复了

[root@localhost ~]# parted -s /dev/sdb mklabel gpt 错误: 无法对设备 /dev/sdb,Linux运维基础,linux,云计算,运维文章来源地址https://www.toymoban.com/news/detail-773317.html

到了这里,关于Linux基础笔记18 | 磁盘分区管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux笔记——磁盘进行分区与挂载介绍

    Linux笔记——管道相关命令以及shell编程 文章目录 系列文章目录 前言 分区与挂载 1 分区  1.1 分区示意图​编辑 1.2 分区介绍 2 硬盘的挂载 3 增加一块硬盘  3.1 增加一块硬盘 3.2 硬盘进行分区 3.3 格式化磁盘 4 卸载 5 查看磁盘使用情况 6 一些工作中可能用到的磁盘案例 总结 本

    2024年02月03日
    浏览(37)
  • Linux Centos系统 磁盘分区和文件系统管理 (深入理解)

    作者主页: 点击! Linux专栏:点击! 磁盘 在Linux系统中,磁盘是一种用于存储数据的物理设备,可以是传统的硬盘驱动器(HDD)或固态硬盘(SSD)。Linux将磁盘设备视为块设备,它们通常以文件形式表示在 /dev 目录下。 文件系统 在计算机系统中, 文件系统 定义了如何存储

    2024年03月15日
    浏览(40)
  • 【Linux系统基础快速入门详解】生产环境磁盘分区多种方案

    鱼弦:CSDN内容合伙人、CSDN新星导师、51CTO(Top红人+专家博主) 、github开源爱好者(go-zero源码二次开发、游戏后端架构 https://github.com/Peakchen)   在Linux生产环境中,有多种磁盘分区方案可供选择。以下是一些常见的方案及其原理的详细解释: 单一分区方案: 原理:将整个磁盘

    2024年02月07日
    浏览(45)
  • Linux磁盘分区中物理卷(PV)、卷组(VG)、逻辑卷(LV)创建和(LVM)管理

    LVM,Logical Volume Manger,逻辑卷管理,Linux磁盘分区管理的一种机制,建立在硬盘和分区上的一个逻辑层,提高磁盘分区管理的灵活性。 物理设备,是用于保留逻辑卷中所存储数据的存储设备。它们是块设备,可以是磁盘分区、整个磁盘、RAID阵列或SAN磁盘。设备必须初始化为L

    2024年02月01日
    浏览(35)
  • linux [root@localhost ~]#的含义

    [ root @ localhost ~ ] # [ 当前登录用户 @ 主机名字 所在目录 ] 用户标识 ~ 家目录 # 超级用户 / 根目录 $ 普通用户

    2024年02月17日
    浏览(29)
  • Linux中使用磁盘和磁盘的分区试验

    柱面 扇区:是硬盘最小存储单位,为512字节,8个扇区组成一块为4k 磁道 /dev/sda   第一块硬盘 s:代表硬盘接口类型,接口类型决定了数据传输的速率 d:disk(磁盘) a:第一块盘 b:第二块盘 /dev/vd----虚拟的磁盘 分区:为了提高性能 作用: 1.优化I/O性能------读写性能 2.隔离系统

    2024年02月04日
    浏览(31)
  • centos linux lvm分区 标准分区 磁盘扩容

    选择磁盘分区 选择分区方式: 自动分区最省力,选择后点击done,就完成分区配置了; 手动分区需要配置,一般会预留”/boot”(引导启动),”/swap”(内存扩展)、“/” 根目录 看手动分区,可以LVM分区,也可以用标准分区 “Standard Partition”, 以LVM为例,选择I will conf

    2024年02月04日
    浏览(34)
  • 【LINUX】磁盘分区、挂载

    1.1.原理介绍      (1) Linux 无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一  的文件结构 。      Linux 中每个分区都是用来组成整个文件系统的一部分。      (2) Linux 采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套

    2024年02月09日
    浏览(55)
  • Linux之磁盘分区、挂载

    Linux来说无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,Linux中每个分区都是用来组成整个文件系统的一部分。 Linux采用了一种叫“载入”的处理方法,它的整个文件系统中包含了一整套的文件和目录,且将一个分区和一个目

    2024年02月02日
    浏览(41)
  • 【Linux】磁盘分区和挂载

    目录  Linux磁盘分区和挂载 linux分区  查看所有设备挂载情况  挂载案例 步骤1:新建一块硬盘 操作步骤2: 虚拟机硬盘分区  步骤3:虚拟机硬盘分区格式化  步骤4:将磁盘挂载到根目录下newdisk目录下 mount挂载 umount取消挂载 步骤5:实现永久挂载(即重启不消失)  df -h查询

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包