一,磁盘概述
磁盘概述
磁盘是一种持久性存储设备,用于存储操作系统、应用程序和数据。磁盘通常分为**机械硬盘(HDD)和固态硬盘(SSD)**两种,HDD 基于旋转的磁性盘片,而 SSD 基于闪存芯片,因此 SSD 通常具有更快的读写速度和更低的延迟。
磁盘接口类型
- SATA(Serial ATA):最常见的接口类型之一,传输速度一般,但性价比高,适合机械硬盘。
- SAS(Serial Attached SCSI):主要用于企业环境,具有更高的传输速度和可靠性。
- NVMe(Non-Volatile Memory Express):基于 PCIe 通道的高速接口,专为 SSD 设计,提供极高的读写性能。
- IDE(Integrated Drive Electronics):一种较老的接口类型,已经逐步被淘汰。
- SCSI(Small Computer System Interface):常用于服务器,稳定性高,但成本较高。
磁盘分区方式
-
MBR(Master Boot Record):fdisk
- 传统的分区方式,最多支持 4 个主分区。
- 单个分区最大支持 2TB 容量。
- 适合较旧的系统,逐步被 GPT 替代。
-
GPT(GUID Partition Table):gdisk
- 新一代分区方式,支持更多分区(理论上无限制,实际系统通常限制在 128 个)。
- 支持超过 2TB 的分区大小,适合大容量磁盘。
- 提供冗余分区表,更安全可靠。
扇区(Sector)
- 定义:扇区是磁盘的最小物理存储单元,一般大小为 512 字节或 4KB。
- 作用:硬盘通过扇区进行物理数据的读写操作。
- 常见问题:
- 扇区损坏:物理损坏的扇区会导致数据丢失或读取失败,系统可能会标记这些扇区以防止继续使用。
块(Block)
- 定义:块是文件系统中的最小存储管理单元,由若干扇区组成,通常大小为 1KB、2KB 或 4KB。
- 作用:文件系统以块为单位分配空间。文件写入磁盘时,文件系统会把数据存储在块中。
- 常见问题:
- 磁盘空间浪费:若块较大,而文件很小,则剩余空间无法被其他文件利用,造成空间浪费。
- 块大小选择:选择不合适的块大小会影响系统的存储效率,例如大文件建议选择较大块,而小文件适合小块。
inode
- 定义:inode 是文件系统中存储文件元数据的结构体(如权限、大小、创建时间等),但不包含文件的实际内容。每个文件和目录都有一个 inode。
- 作用:inode 包含指向数据块的指针,使文件系统能够定位文件内容在磁盘上的位置。
- 常见问题:
- inode 用尽:当 inode 用尽,即使磁盘上有剩余空间,仍无法存储新文件。这通常发生在有大量小文件的情况下。
- inode 数量固定:文件系统格式化时,inode 数量是预设的,无法随磁盘空间变化而增减。如果文件系统使用的是小文件多的情况,inode 很容易耗尽。
扇区、块和 inode 的关系
扇区是磁盘硬件层面的最小存储单元,块是文件系统管理层定义的逻辑存储单元,而 inode 是文件管理层的核心结构体,用于记录文件的元数据及其数据块的位置。这三者共同协作,确保文件系统能够高效管理和读取存储在磁盘上的数据。
常见场景总结
- 磁盘空间有余但无法创建文件:通常是 inode 已满,尤其是当系统中存在大量小文件时。此时需删除无用小文件,或在重新格式化时分配更多 inode。
- 系统性能下降:块大小不当可能导致性能下降。合理设置块大小能提高文件系统的读写性能。
磁盘命名方式
以下是 Linux 系统中磁盘和分区的详细命名方式表格:
类型 命名格式 示例 说明 IDE 硬盘 /dev/hd[a-z]
/dev/hda
、/dev/hdb
适用于旧式 IDE 接口的硬盘。 /dev/hda
表示第一个 IDE 硬盘,/dev/hdb
表示第二个。IDE 硬盘分区 /dev/hd[a-z][1-9]
/dev/hda1
、/dev/hdb2
IDE 硬盘上的分区使用数字表示, /dev/hda1
表示第一个 IDE 硬盘的第一个分区。SATA/SCSI/USB 磁盘 /dev/sd[a-z]
/dev/sda
、/dev/sdb
用于 SATA、SCSI 和 USB 接口的磁盘设备。 /dev/sda
表示第一个设备,/dev/sdb
表示第二个。SATA/SCSI/USB 分区 /dev/sd[a-z][1-9]
/dev/sda1
、/dev/sdb2
磁盘的分区用数字编号, /dev/sda1
表示第一个 SATA 磁盘的第一个分区。NVMe 磁盘 /dev/nvme[0-9]n[1-9]
/dev/nvme0n1
NVMe 接口的 SSD 磁盘设备。 /dev/nvme0n1
表示第一个 NVMe 磁盘设备。NVMe 分区 /dev/nvme[0-9]n[1-9]p[1-9]
/dev/nvme0n1p1
、/dev/nvme1n1p2
NVMe 设备的分区通过 p
和数字编号,/dev/nvme0n1p1
表示第一个 NVMe 磁盘的第一个分区。软 RAID 设备 /dev/md[0-9]
/dev/md0
、/dev/md1
用于通过 mdadm
创建的 RAID 设备,/dev/md0
表示第一个 RAID 设备。LVM 卷组(VG) /dev/<卷组名>/<逻辑卷名>
/dev/vg_data/lv_home
通过 LVM 创建的逻辑卷, vg_data
是卷组,lv_home
是逻辑卷。UUID UUID=<UUID>
UUID=123e4567-e89b-12d3-a456-426614174000
每个分区的唯一标识符,避免设备路径变化带来的影响。通过 lsblk -f
或blkid
查看。Label(标签) LABEL=<标签名>
LABEL=home
自定义分区的标签,通常用于简化挂载。可以用 e2label
、tune2fs
设置标签名。说明:
- IDE 硬盘和 SATA/SCSI/USB 硬盘 的命名规则相似,但不同于接口类型,通常
hd
表示 IDE,sd
表示 SATA、SCSI 或 USB。- NVMe 磁盘 具有特殊的命名方式,
n
表示设备,p
表示分区。- 软 RAID 设备 是通过软件实现的磁盘阵列,通常通过
mdadm
管理。- LVM(逻辑卷管理)允许创建灵活的卷组和逻辑卷,使磁盘空间管理更加方便。
- UUID 和 Label(标签) 是更稳定的命名方式,系统会根据 UUID 或标签来识别磁盘和分区,不受设备路径变化的影响,通常用于
/etc/fstab
配置文件中。这些命名规则确保在不同的磁盘接口和存储配置下,Linux 系统可以准确识别并管理设备。
常见的文件系统
在 Linux 系统中,文件系统决定了数据在磁盘上的组织方式,常见的文件系统包括:
- ext4:Linux 系统中最常用的文件系统,具有较好的稳定性和性能,支持大文件和大容量分区。
- xfs:高性能文件系统,特别适用于大文件和高并发 I/O 场景。
- btrfs:一个现代的 Linux 文件系统,支持快照、压缩和子卷管理,适合高级存储管理。
- FAT32 和 exFAT:跨平台文件系统,支持 Windows 和 Linux,通常用于 U 盘和存储卡。
- NTFS:Windows 默认文件系统,但在 Linux 上也可以通过 NTFS 驱动程序访问。
二,磁盘分区管理
添加磁盘(可能不识别,请重启)
查看磁盘
df -HT,lsblk,fdisk -l
磁盘分区思路(建议先看小标题,了解了fdisk和gdisk后再细看)
选择磁盘
- 首先确定要分区的磁盘设备名(如
/dev/sda
、/dev/sdb
等),可以使用lsblk
或fdisk -l
命令查看所有磁盘及其分区情况。备份数据
- 在对磁盘进行分区操作前,务必备份重要数据,以防止意外数据丢失。
选择工具
- 根据磁盘分区表类型选择工具:
fdisk
:适用于 MBR(主引导记录)格式的磁盘。gdisk
:适用于 GPT(GUID 分区表)格式的磁盘。启动分区工具
- 使用
fdisk
或gdisk
命令启动工具:或
fdisk /dev/sda
gdisk /dev/sda
查看现有分区
- 在工具内查看当前的分区布局,使用
p
命令打印当前分区表。删除不必要的分区(可选)
- 如果需要重新分区,可以使用
d
命令删除不必要的分区。创建新分区
- 使用
n
命令创建新分区:
- 选择分区类型(主分区或扩展分区)。
- 输入分区号(MBR 分区最大为 4 个主分区,超过需使用扩展分区)。
- 输入起始和结束扇区(可以使用默认值)。
- 对于
gdisk
,可以直接创建 GPT 分区,通常不需要扩展分区。设置分区类型
- 使用
t
命令设置分区类型(如 Linux、Linux swap、NTFS 等),根据需要选择相应的 ID。写入分区表
- 使用
w
命令保存更改并退出。注意,这一操作会立即应用分区更改。- 更新分区表
- partx -a /dev/sd【x】
格式化分区
- 对新建的分区进行格式化,选择合适的文件系统(如 ext4、xfs 等):
mkfs.ext4 /dev/sda1
挂载分区
- 创建挂载点并挂载新分区:
mkdir /mnt/mydata mount /dev/sda1 /mnt/mydata
更新
/etc/fstab
- 为了在重启后自动挂载分区,编辑
/etc/fstab
文件添加新分区的信息。
磁盘分区
分区命令fdisk/gdisk
fdisk 【选项】【/dev/磁盘设备(sd【x】)】
常用选项
选项 描述 -l
列出系统中的所有磁盘和分区信息。 -u
以扇区为单位显示分区大小(以便于查看)。 -s
显示指定设备的大小(以扇区为单位)。 -v
显示版本信息。 -h
显示帮助信息。 交互式命令
在启动
fdisk
后,可以使用以下命令进行分区管理:
命令 描述 m
显示帮助菜单。 p
打印当前分区表。 n
创建新分区。(p主分区,e扩展分区)(序号默认就是了)(size可【+数字KMG】) d
删除分区。 t
更改分区类型。 w
保存更改并退出。 q
退出而不保存更改。 gdisk【选项】【/dev/磁盘设备(sd【x】)】
常用选项
选项 描述 -l
列出磁盘的分区信息。 -v
显示版本信息。 -h
显示帮助信息。 -y
在需要确认的情况下自动确认(如写入分区表)。 交互式命令
在启动
gdisk
后,可以使用以下命令进行分区管理:
命令 描述 m
显示帮助菜单。 p
打印当前分区表。 n
创建新分区。(p主分区,e扩展分区_l逻辑分区)(序号默认就是了)(size可【+数字KMG】) d
删除分区。 t
更改分区类型。 w
保存更改并退出。 q
退出而不保存更改。
格式分区
步骤
确认分区:
- 使用
lsblk
或fdisk -l
命令确认要格式化的分区(如/dev/sda1
)。选择文件系统类型:
- 常见的文件系统类型有:
- ext4:常用的 Linux 文件系统,支持大文件和大容量分区。
- xfs:高性能文件系统,适合大文件的应用场景。
- vfat:适合与其他操作系统共享的文件系统(如 USB 驱动器)。
- swap:用于 Linux 交换分区。
执行格式化命令:
- 使用
mkfs
命令格式化分区。
mkfs命令
mkfs.【文件系统类型】 /dev/sd【x】【数字】
mkswap /dev/sd【x】【数字】(这个是创建交换分区)
补充 swapon /dev/sd【x】【数字】启动交换分区 swapoff /dev/sd【x】【数字】关闭交换分区 swapon --show 查看当前的交换分区状态,确认是否关闭。 #交换分区不需要挂载,直接启动就可以用了
挂载分区
挂载一块磁盘大多数都是在/mnt目录下,重中之重的是你要先创建一个文件夹。
mount [选项] <设备> <挂载点>
常用选项
选项 | 描述 |
---|---|
-t <类型> | 只是指定文件系统的类型,以便 mount 正确识别并挂载该文件系统。没有实际作用 |
-o <选项> | 其他挂载选项(如 ro 只读挂载,rw 读写挂载)。系统默认会以读写模式挂载分区。 |
umount [选项] <挂载点或设备>
常用选项
选项 | 描述 |
---|---|
-l | 延迟解挂载,直到设备不再被使用。 |
-f | 强制解挂载(通常在设备忙或无法解挂载时使用)。 |
自动挂载
使用文本编辑器(如 nano
或 vim
)打开 /etc/fstab
文件:
在文件末尾添加一行,指定分区、挂载点、文件系统类型及挂载选项。
<文件系统> <挂载点> <文件系统类型> <挂载选项> <备份选项> <检查顺序>
各字段详解
字段 描述 <文件系统>
可以是设备名(如 /dev/sda1
)、UUID(如UUID=xxxx-xxxx
)或 LABEL(如LABEL=mydata
)。这是要挂载的文件系统的标识。使用 UUID 或 LABEL 更为推荐,因为设备名在系统重启后可能会改变。使用blkid
命令可以找到设备的 UUID 和 LABEL。<挂载点>
挂载点是文件系统在文件树中的位置,必须是一个已存在的目录。例如 /mnt/mydata
是你希望访问该文件系统的路径。如果挂载点不存在,挂载操作会失败。<文件系统类型>
文件系统类型(如 ext4
、xfs
、vfat
、ntfs
等)。这告诉系统如何处理挂载的文件系统。对于常见的 Linux 文件系统,通常可以使用auto
选项自动检测类型。<挂载选项>
挂载选项控制文件系统的行为。常用选项包括: <ul> <li> defaults
:使用默认挂载选项(读写、自动挂载等)。</li> <li>ro
:只读挂载。</li> <li>rw
:读写挂载(默认)。</li> <li>noexec
:不执行挂载点下的可执行文件。</li> <li>nosuid
:不允许设置用户 ID 位。</li> <li>nodev
:不解释设备文件。</li> </ul><备份选项>
用于 dump
命令的备份选项。通常为 0(表示不备份)或 1(表示备份)。在大多数情况下,您可以将此选项设置为 0。<检查顺序>
用于 fsck
命令的检查顺序。根文件系统(/
)通常设为 1,其余文件系统设为 2,0 表示不进行检查。这个选项用于启动时确定检查的顺序。UUID=e5ace6fc-d4dd-4d2a-aacc-0190f07e4ea4 / xfs defaults 0 0 #用空格隔开
具体案例
查看硬盘情况
添加一块分区
刷新分区与内核(可选)
partprobe更新分区
partx -a /dev/sd[x]跟新内核
格式磁盘(修改或添加文件系统)
mkfs.【系统】 分区
mkswap 分区
临时挂载磁盘(挂载在任何地方都可以,建议在/mnt下)
持久化/自动挂载(修改配置文件/etc/fstab)
先看uuid(可选)
修改配置文件,使用uuid,设备分区名,label都可以,建议uuid但是为了系统安全建议分区名。如果可以复制的话就用uuid
reboot重启检测一下
补充:autofs自动挂载(有点问题)
autofs
概述
- 自动挂载:当访问指定目录时,
autofs
会自动挂载相应的文件系统;当一定时间内没有访问时,它会自动卸载。- 灵活性:适用于经常需要挂载和卸载的文件系统,减少系统的资源占用。
安装
autofs
sudo yum install autofs
配置
autofs
编辑主配置文件:
- 主配置文件通常位于
/etc/auto.master
,你需要在该文件中指定挂载点和配置文件。- 添加一行,指向自定义的挂载配置文件:
- /mnt /etc/auto.mnt -t 60
- 这里,
/mnt
是挂载点的父目录,/etc/auto.mnt
是自定义的配置文件,--timeout=60
表示在 60 秒内未访问自动卸载。创建自定义配置文件:
创建自定义配置文件
/etc/auto.mnt
mydata -fstype=ext4 ,rw:/dev/sda1
这里,
mydata
是之前挂载点子目录(设备挂载的位置),访问/mnt/mydata
时将自动挂载/dev/sda1
。rw是挂载权限启动和启用
autofs
服务:
- 启动
autofs
服务:
- sudo systemctl start autofs
- 设置开机自启:
- sudo systemctl enable autofs
三,逻辑卷管理
逻辑卷概述
逻辑卷管理器(LVM)是一种用于管理磁盘存储的工具,允许用户以更灵活的方式管理磁盘空间。与传统的分区管理相比,LVM 提供了动态的分区管理功能,包括扩展、缩减和快照等。
逻辑卷相关概念
- 物理卷(PV):物理存储设备(如硬盘分区或整个硬盘)在 LVM 中被标记为物理卷。
- 卷组(VG):将一个或多个物理卷组合在一起,形成一个逻辑存储池,供逻辑卷使用。
- 逻辑卷(LV):在卷组中创建的可用存储空间,类似于传统分区,但更加灵活。
- 扩展(PE):卷组中的最小分配单元,逻辑卷由多个扩展组成。
我们将设备划分成物理卷————》将物理卷加入卷组————》将卷组看成一个整体(大的硬盘)——》分区后得到了逻辑卷————》再将逻辑卷挂载
使用逻辑卷
前行知识
在使用逻辑卷(LVM)之前,了解以下相关命令将非常有帮助:
### 1. 物理卷相关命令
- **创建物理卷**:
pvcreate /dev/sdX
- **显示物理卷信息**:
pvdisplay
- **列出所有物理卷**:
pvs
### 2. 卷组相关命令
- **创建卷组**:
vgcreate my_volume_group /dev/sdX
- **显示卷组信息**:
vgdisplay
- **列出所有卷组**:
vgs
### 3. 逻辑卷相关命令
- **创建逻辑卷**:
lvcreate -n my_logical_volume -L 10G my_volume_group
- **显示逻辑卷信息**:
lvdisplay
- **列出所有逻辑卷**:
lvs
### 4. 文件系统相关命令
- **格式化逻辑卷**:
mkfs.ext4 /dev/my_volume_group/my_logical_volume
- **挂载逻辑卷**:
mount /dev/my_volume_group/my_logical_volume /mnt/my_logical_volume
- **卸载逻辑卷**:
umount /mnt/my_logical_volume
### 5. 扩展与缩减逻辑卷
- **扩展逻辑卷**:
lvextend -L +5G /dev/my_volume_group/my_logical_volume
resize2fs /dev/my_volume_group/my_logical_volume
- **缩减逻辑卷**:
umount /mnt/my_logical_volume
resize2fs /dev/my_volume_group/my_logical_volume # 先调整文件系统
lvreduce -L -5G /dev/my_volume_group/my_logical_volume
mount /dev/my_volume_group/my_logical_volume /mnt/my_logical_volume
### 6. 一些额外的命令
- **查看当前挂载点**:
mount | grep /mnt
- **检查文件系统**:
fsck /dev/my_volume_group/my_logical_volume
创建物理卷(PV)
创建物理卷:
- pvcreate /dev/sd【X】【数字】
显示物理卷信息:
- pvdisplay 【物理卷名】
列出所有物理卷:
- pvs
创建卷组(VG)
创建卷组:
- vgcreate 卷组名 /dev/sd【x】【数字】(要加入的物理卷)
扩展卷组:
- vgextend 卷组名 物理卷
显示卷组信息:
- vgdispaly 【卷组名】
列出所有卷组:
- vgs
创建逻辑卷(LV)
创建逻辑卷:
- lvcreate -n 自定义的逻辑卷名 -L 10G 卷组名
- 意思是:创建一个逻辑卷并从卷组中分10G的空间给他
显示逻辑卷信息:
- lvdisplay 【逻辑卷名】
列出所有逻辑卷:
- lvs
格式化逻辑卷
- mkfs.【文件系统类型】 /dev/卷组名/逻辑卷名
- mkswap /dev/卷组名/逻辑卷名
挂载逻辑卷(要先确保挂载点存在)
- mount /dev/卷组/逻辑卷 挂载点
- 要注意,当我们挂载逻辑卷的时候,如果有时候一块物理卷不够用,就会同时挂载多块满足使用
使用逻辑卷
- 进去看看,创个文件之类的
卸载逻辑卷
- umount 挂载点/逻辑卷
删除逻辑卷(删除前先取消挂载),卷组,物理卷
- lvremove /dev/卷组/逻辑卷
- vgremove 【卷组】
- pvremove
- 补充:
lvremove
、vgremove
或pvremove
命令时不指定参数(即不指定要删除的具体逻辑卷、卷组或物理卷),系统会提示你确认是否要删除所有逻辑卷、卷组或物理卷。(不可逆)正确的删除顺序(不这样会报错)
- 删除逻辑卷:先卸载并删除逻辑卷。
- 删除卷组:确保卷组中没有逻辑卷后,删除卷组。
- 删除物理卷:最后,确保物理卷不再被任何卷组使用后,可以删除物理卷。
扩展逻辑卷(可选)
- lvextend -L +5G /dev/卷组/逻辑卷 # 增加 5GB
resize2fs /dev/卷组/逻辑卷 # 调整文件系统以使用新的空间缩减逻辑卷(可选)
- umount /mnt/逻辑卷挂载点 # 卸载逻辑卷
resize2fs /dev/卷组/逻辑卷 # 调整文件系统大小(减小)
lvreduce -L -5G /dev/卷组/逻辑卷 # 减少 5GB
mount /dev/卷组/逻辑卷 /mnt/挂载点 # 重新挂载逻辑卷- 扩展知识
扩展逻辑卷(增加空间) 扩展逻辑卷后,可以随时增加逻辑卷的大小,操作是相对简单的。 在扩展后,使用 resize2fs(或其他文件系统调整命令)来调整文件系统的大小,以便它可以使用新增的空间。 缩减逻辑卷(减少空间) 缩减逻辑卷之前,必须先调整文件系统的大小。这是因为文件系统必须确保所有数据都在逻辑卷的新边界内。 如果直接缩减逻辑卷而不调整文件系统,可能导致数据丢失或文件系统损坏,因为文件系统可能仍试图访问原来较大的逻辑卷的区域。
是
要将物理卷(PV)从卷组(VG)中移除,可以使用
vgreduce
命令。
卸载逻辑卷:在移除物理卷之前,确保卷组中的所有逻辑卷已被卸载。
umount /mnt/my_logical_volume
删除逻辑卷(如果需要):如果您打算完全移除物理卷,您需要先删除卷组中的逻辑卷。
lvremove /dev/卷组/逻辑卷
使用
vgreduce
命令:将物理卷从卷组中移除。
vgreduce 卷组名 物理卷名
(可选)检查卷组状态:确认物理卷已成功移除。
vgdisplay my_volume_group
任何操作都要考虑这两点
- 确认逻辑卷状态:请确保没有逻辑卷在使用该物理卷。
- 备份数据:在进行这些操作之前,务必备份重要数据,以防数据丢失。
人性化表格
命令 选项 用法示例 说明 lvextend
-l
lvextend -l +100%FREE /dev/my_volume_group/my_logical_volume
将逻辑卷扩展到使用卷组中所有可用的空间。 lvreduce
-l
lvreduce -l -50% /dev/my_volume_group/my_logical_volume
将逻辑卷缩减到当前大小的百分之五十。 lvcreate
-l
lvcreate -l 100%VG -n my_logical_volume my_volume_group
创建一个使用卷组中所有可用空间的逻辑卷。
四,扩展(对于数据的移动)
pvmove
、lvmove
和 vgmove
命令的详细信息,包括选项的表格:
命令 | 语法 | 作用 | 演示示例 | 相关底层知识点 |
---|---|---|---|---|
pvmove | pvmove [options] <源设备> [<目标设备>] | 将一个物理卷中的数据迁移到另一个物理卷 | pvmove /dev/sdb1 /dev/sdc1 将 /dev/sdb1 上的数据迁移到 /dev/sdc1 | 物理卷(PV):LVM 的基本存储单位,通常是物理硬盘或分区。 卷组(VG):由一个或多个物理卷组成的逻辑存储池。 在迁移过程中,逻辑卷仍然可用。(底层存放位置变为目标设备) |
lvmove | lvmove [options] <源逻辑盘> <目标逻辑盘> | 将逻辑卷中的数据迁移到另一个物理卷 | lvmove /dev/vg0/lv1 /dev/sdc1 将逻辑卷 /dev/vg0/lv1 中的数据迁移到物理卷 /dev/sdc1 | 逻辑卷(LV):在卷组内创建的可用空间,类似于传统硬盘分区。 逻辑卷管理器(LVM):提供灵活的存储管理工具,支持动态扩展和缩减。 适用于需要负载均衡或优化存储配置的场景。 |
vgmove | vgmove [options] <源卷组> [<目标卷组>] | 将卷组中的所有逻辑卷的数据迁移到另一个物理卷 | vgmove vg0 /dev/sdb1 将卷组 vg0 中所有逻辑卷的数据迁移到 /dev/sdb1 | 卷组管理:LVM 提供的管理功能,可以动态调整物理卷和逻辑卷之间的关系。 可用性得以保证,以防止数据丢失。 |
相关选项
|
依赖性说明
pvmove: 实际情况:假设有一个逻辑卷 lv_data,原本存储在物理卷 pv1 上。使用 pvmove 将数据迁移到新的物理卷 pv2。此时,lv_data 的数据在 pv1 和 pv2 上都有(存放数据也是同时向两个pv中存,读取也是),但逻辑卷配置仍然指向 pv1。需要手动检查数据完整性,并决定是否将逻辑卷的配置更新为只指向 pv2(就是将pv1移除卷组,是否删除看自己)。 使用 pvmove 迁移数据后,通过 vgreduce 将原物理卷剔除卷组来更新逻辑卷配置,使其只指向新的物理卷。 vgmove: 实际情况:对于一个卷组 vg1,其中包含多个逻辑卷。使用 vgmove 将所有逻辑卷的数据从物理卷 pv1 迁移到 pv2。迁移完成后,所有逻辑卷的配置自动更新,指向 pv2,不再依赖 pv1。这使得整个卷组的管理变得简单,因为所有数据都集中在 pv2 上。 lvmove: 实际情况:假设逻辑卷 lv_app 存储在物理卷 pv1 上。执行 lvmove 命令将 lv_app 的数据迁移到 pv2。迁移完成后,lv_app 的配置自动更新,直接指向 pv2。此时,lv_app 完全依赖于 pv2,而 pv1 上的数据可以安全地删除或移除。 总结 pvmove:逻辑卷在迁移期间仍依赖于源物理卷,需手动更新。 vgmove:逻辑卷迁移后,自动更新为新物理卷,简化管理。 lvmove:单个逻辑卷迁移后,自动更新依赖关系,便捷高效。
总结
大概用了3天,其实都是在玩哈哈哈哈。