day11:磁盘管理

一,磁盘概述

磁盘概述

磁盘是一种持久性存储设备,用于存储操作系统、应用程序和数据。磁盘通常分为**机械硬盘(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/hdb2IDE 硬盘上的分区使用数字表示,/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/nvme0n1NVMe 接口的 SSD 磁盘设备。/dev/nvme0n1 表示第一个 NVMe 磁盘设备。
NVMe 分区/dev/nvme[0-9]n[1-9]p[1-9]/dev/nvme0n1p1/dev/nvme1n1p2NVMe 设备的分区通过 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 是逻辑卷。
UUIDUUID=<UUID>UUID=123e4567-e89b-12d3-a456-426614174000每个分区的唯一标识符,避免设备路径变化带来的影响。通过 lsblk -fblkid 查看。
Label(标签)LABEL=<标签名>LABEL=home自定义分区的标签,通常用于简化挂载。可以用 e2labeltune2fs 设置标签名。

说明:

  • IDE 硬盘和 SATA/SCSI/USB 硬盘 的命名规则相似,但不同于接口类型,通常 hd 表示 IDE,sd 表示 SATA、SCSI 或 USB。
  • NVMe 磁盘 具有特殊的命名方式,n 表示设备,p 表示分区。
  • 软 RAID 设备 是通过软件实现的磁盘阵列,通常通过 mdadm 管理。
  • LVM(逻辑卷管理)允许创建灵活的卷组和逻辑卷,使磁盘空间管理更加方便。
  • UUIDLabel(标签) 是更稳定的命名方式,系统会根据 UUID 或标签来识别磁盘和分区,不受设备路径变化的影响,通常用于 /etc/fstab 配置文件中。

这些命名规则确保在不同的磁盘接口和存储配置下,Linux 系统可以准确识别并管理设备。

常见的文件系统

在 Linux 系统中,文件系统决定了数据在磁盘上的组织方式,常见的文件系统包括:

  • ext4:Linux 系统中最常用的文件系统,具有较好的稳定性和性能,支持大文件和大容量分区。
  • xfs:高性能文件系统,特别适用于大文件和高并发 I/O 场景。
  • btrfs:一个现代的 Linux 文件系统,支持快照、压缩和子卷管理,适合高级存储管理。
  • FAT32exFAT:跨平台文件系统,支持 Windows 和 Linux,通常用于 U 盘和存储卡。
  • NTFS:Windows 默认文件系统,但在 Linux 上也可以通过 NTFS 驱动程序访问。

二,磁盘分区管理

添加磁盘(可能不识别,请重启)

查看磁盘

df -HT,lsblk,fdisk -l

磁盘分区思路(建议先看小标题,了解了fdisk和gdisk后再细看)

  • 选择磁盘

    • 首先确定要分区的磁盘设备名(如 /dev/sda/dev/sdb 等),可以使用 lsblkfdisk -l 命令查看所有磁盘及其分区情况。
  • 备份数据

    • 在对磁盘进行分区操作前,务必备份重要数据,以防止意外数据丢失。
  • 选择工具

    • 根据磁盘分区表类型选择工具:
      • fdisk:适用于 MBR(主引导记录)格式的磁盘。
      • gdisk:适用于 GPT(GUID 分区表)格式的磁盘。
  • 启动分区工具

    • 使用 fdiskgdisk 命令启动工具:

      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退出而不保存更改。

格式分区

步骤
  • 确认分区

    • 使用 lsblkfdisk -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强制解挂载(通常在设备忙或无法解挂载时使用)。

自动挂载

使用文本编辑器(如 nanovim)打开 /etc/fstab 文件:

在文件末尾添加一行,指定分区、挂载点、文件系统类型及挂载选项。

<文件系统>  <挂载点>  <文件系统类型>  <挂载选项>  <备份选项>  <检查顺序>

各字段详解

字段描述
<文件系统>可以是设备名(如 /dev/sda1)、UUID(如 UUID=xxxx-xxxx)或 LABEL(如 LABEL=mydata)。这是要挂载的文件系统的标识。使用 UUID 或 LABEL 更为推荐,因为设备名在系统重启后可能会改变。使用 blkid 命令可以找到设备的 UUID 和 LABEL。
<挂载点>挂载点是文件系统在文件树中的位置,必须是一个已存在的目录。例如 /mnt/mydata 是你希望访问该文件系统的路径。如果挂载点不存在,挂载操作会失败。
<文件系统类型>文件系统类型(如 ext4xfsvfatntfs 等)。这告诉系统如何处理挂载的文件系统。对于常见的 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

  1. 编辑主配置文件

    • 主配置文件通常位于 /etc/auto.master,你需要在该文件中指定挂载点和配置文件。
    • 添加一行,指向自定义的挂载配置文件:
      • /mnt      /etc/auto.mnt   -t  60
      • 这里,/mnt 是挂载点的父目录,/etc/auto.mnt 是自定义的配置文件,--timeout=60 表示在 60 秒内未访问自动卸载。
  2. 创建自定义配置文件

    • 创建自定义配置文件 /etc/auto.mnt

      • mydata   -fstype=ext4 ,rw:/dev/sda1

      • 这里,mydata 是之前挂载点子目录(设备挂载的位置),访问 /mnt/mydata 时将自动挂载 /dev/sda1。rw是挂载权限

  3. 启动和启用 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
  1. 创建物理卷(PV)
    1. 创建物理卷
      1. pvcreate /dev/sd【X】【数字】
    2. 显示物理卷信息
      1. pvdisplay 【物理卷名】
    3. 列出所有物理卷
      1. pvs
  2. 创建卷组(VG)
    1. 创建卷组
      1. vgcreate 卷组名  /dev/sd【x】【数字】(要加入的物理卷)
    2. 扩展卷组:
      1. vgextend 卷组名 物理卷
    3. 显示卷组信息
      1. vgdispaly 【卷组名】
    4. 列出所有卷组
      1. vgs
  3. 创建逻辑卷(LV)
    1. 创建逻辑卷
      1. lvcreate -n 自定义的逻辑卷名 -L 10G 卷组名
        1. 意思是:创建一个逻辑卷并从卷组中分10G的空间给他
    2. 显示逻辑卷信息
      1. lvdisplay 【逻辑卷名】
    3. 列出所有逻辑卷
      1. lvs
  4. 格式化逻辑卷
    1. mkfs.【文件系统类型】 /dev/卷组名/逻辑卷名
    2. mkswap  /dev/卷组名/逻辑卷名
  5. 挂载逻辑卷(要先确保挂载点存在)
    1. mount /dev/卷组/逻辑卷  挂载点
    2. 要注意,当我们挂载逻辑卷的时候,如果有时候一块物理卷不够用,就会同时挂载多块满足使用
  6. 使用逻辑卷
    1. 进去看看,创个文件之类的
  7. 卸载逻辑卷
    1. umount  挂载点/逻辑卷
  8. 删除逻辑卷(删除前先取消挂载),卷组,物理卷
    1. lvremove    /dev/卷组/逻辑卷
    2. vgremove  【卷组】
    3. pvremove 
    4. 补充:
      1. lvremovevgremovepvremove 命令时不指定参数(即不指定要删除的具体逻辑卷、卷组或物理卷),系统会提示你确认是否要删除所有逻辑卷、卷组或物理卷。(不可逆
      2. 正确的删除顺序(不这样会报错)

        1. 删除逻辑卷:先卸载并删除逻辑卷。
        2. 删除卷组:确保卷组中没有逻辑卷后,删除卷组。
        3. 删除物理卷:最后,确保物理卷不再被任何卷组使用后,可以删除物理卷。
  9. 扩展逻辑卷(可选)
    1. lvextend -L +5G /dev/卷组/逻辑卷  # 增加 5GB
      resize2fs /dev/卷组/逻辑卷  # 调整文件系统以使用新的空间
  10. 缩减逻辑卷(可选)
    1. umount /mnt/逻辑卷挂载点  # 卸载逻辑卷
      resize2fs /dev/卷组/逻辑卷 # 调整文件系统大小(减小)
      lvreduce -L -5G /dev/卷组/逻辑卷  # 减少 5GB
      mount /dev/卷组/逻辑卷 /mnt/挂载点  # 重新挂载逻辑卷
  11. 扩展知识
    1. 扩展逻辑卷(增加空间)
      
      扩展逻辑卷后,可以随时增加逻辑卷的大小,操作是相对简单的。
      在扩展后,使用 resize2fs(或其他文件系统调整命令)来调整文件系统的大小,以便它可以使用新增的空间。
      
      缩减逻辑卷(减少空间)
      
      缩减逻辑卷之前,必须先调整文件系统的大小。这是因为文件系统必须确保所有数据都在逻辑卷的新边界内。
      如果直接缩减逻辑卷而不调整文件系统,可能导致数据丢失或文件系统损坏,因为文件系统可能仍试图访问原来较大的逻辑卷的区域。

    2. 要将物理卷(PV)从卷组(VG)中移除,可以使用 vgreduce 命令。

      1. 卸载逻辑卷:在移除物理卷之前,确保卷组中的所有逻辑卷已被卸载。

        umount /mnt/my_logical_volume

      2. 删除逻辑卷(如果需要):如果您打算完全移除物理卷,您需要先删除卷组中的逻辑卷。

        lvremove /dev/卷组/逻辑卷

      3. 使用 vgreduce 命令:将物理卷从卷组中移除。

        vgreduce 卷组名 物理卷名

      4. (可选)检查卷组状态:确认物理卷已成功移除。

        vgdisplay my_volume_group

    3. 任何操作都要考虑这两点

      1. 确认逻辑卷状态:请确保没有逻辑卷在使用该物理卷。
      2. 备份数据:在进行这些操作之前,务必备份重要数据,以防数据丢失。
    4. 人性化表格

      命令选项用法示例说明
      lvextend-llvextend -l +100%FREE /dev/my_volume_group/my_logical_volume将逻辑卷扩展到使用卷组中所有可用的空间。
      lvreduce-llvreduce -l -50% /dev/my_volume_group/my_logical_volume将逻辑卷缩减到当前大小的百分之五十。
      lvcreate-llvcreate -l 100%VG -n my_logical_volume my_volume_group创建一个使用卷组中所有可用空间的逻辑卷。

四,扩展(对于数据的移动)

pvmovelvmovevgmove 命令的详细信息,包括选项的表格:

命令语法作用演示示例相关底层知识点
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 提供的管理功能,可以动态调整物理卷和逻辑卷之间的关系。
在迁移过程中,数据的完整性和

可用性得以保证,以防止数据丢失。

相关选项

-f:强制执行
-n:仅显示迁移计划,不实际执行

依赖性说明
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天,其实都是在玩哈哈哈哈。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff(geogrid,WPS所需数据)

【WRF数据处理】基于GIS4WRF插件将geotiff数据转为tiff&#xff08;geogrid&#xff0c;WPS所需数据&#xff09; 数据准备&#xff1a;以叶面积指数LAI为例QGis实操&#xff1a;基于GIS4WRF插件将geotiff数据转为tiff警告&#xff1a;GIS4WRF: Input layer had an unexpected …

ES8JC-ASEMI超快恢复二极管ES8JC

编辑&#xff1a;ll ES8JC-ASEMI超快恢复二极管ES8JC 型号&#xff1a;ES8JC 品牌&#xff1a;ASEMI 封装&#xff1a;SMC 安装方式&#xff1a;贴片 批号&#xff1a;最新 恢复时间&#xff1a;35ns 最大平均正向电流&#xff08;IF&#xff09;&#xff1a;8A 最大循…

ECCV 2024论文分享┆Agent Attention: Softmax注意力和线性注意力的高效融合

简介 本推文主要介绍了由清华大学黄高老师团队发表在ECCV 2024上的一篇论文《Agent Attention: On the Integration of Softmax and Linear Attention》&#xff0c;文中提出了一种新型的代理注意力&#xff08;Agent Attention&#xff09;。近年来&#xff0c;Transformer在…

Github 2024-10-29Python开源项目日报 Top10

根据Github Trendings的统计,今日(2024-10-29统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目10TypeScript项目1gpt4free存储库:强大语言模型的集合 创建周期:300 天开发语言:Python协议类型:GNU General Public License v3…

【Java】逻辑控制 —— 三大结构 和 猜数字游戏

目录 1. 顺序结构 2. 分支结构【与C略有不同】 2.1 if语句 2.2 switch语句 注意事项【与C不同】 3. 循环结构【与C略有不同】 3.1 while循环 * break和continue 3.2 for循环 3.3 do while循环 * 输入的判断&#xff08;hasNext&#xff09; 4. 猜数字游戏 1. 顺序结…

大文件秒传,分片上传,断点续传

大文件分片上传 一 功能描述 1.文件通过web端分片多线程上传到服务端&#xff0c;然后web端发起分片合并&#xff0c;完成大文件分片上传功能 2.上传过的大文件&#xff0c;实现秒传 3.上传过程中&#xff0c;服务异常退出&#xff0c;实现断点续传 二 流程图 三 代码运行…

【含开题报告+文档+PPT+源码】基于Java的社会公益平台

开题报告 随着社会的不断进步和人们公益意识的日益增强&#xff0c;社会公益事业在全球范围内得到了广泛的关注和参与。然而&#xff0c;传统的公益模式往往受到信息不对称、资源分散、管理效率低下等问题的困扰&#xff0c;导致公益活动的效果有限&#xff0c;难以满足社会的…

【C语言】C语言入门--函数

文章目录 前言一、函数的概念一、pandas是什么&#xff1f;二、库函数 1.标准库和头文件2.库函数的使用方法3.库函数文档的一般格式三、自定义函数四、形参和实参五、return语句六、数组做函数参数七、嵌套调用和链式访问 1.嵌套调用2.链式访问八、函数的声明和定义 1.单个文件…

C++在实际项目中的应用第二节:C++与区块链

第五章&#xff1a;C在实际项目中的应用 第二课&#xff1a;C与区块链 区块链技术因其去中心化、不可篡改和透明性而受到广泛关注。在这门课程中&#xff0c;我们将深入探讨区块链的基本原理、智能合约的开发以及实际应用的案例分析&#xff0c;重点使用 C 作为实现语言&…

微服务之网关、网关路由、网关登录校验

简介&#xff1a;来源&#xff1a;SpringCloud微服务开发与实战&#xff0c;java黑马商城项目微服务实战开发&#xff08;涵盖MybatisPlus、Docker、MQ、ES、Redis高级等&#xff09; 认识网关 前端请求不能直接访问微服务&#xff0c;而是要请求网关&#xff1a; 网关可以做…

服务环境的搭建

一、基础环境搭建 1、python3 准备相关的jar包 Index of /ftp/python/3.7.9/ scp Python-3.7.9.tgz root192.168.1.245:/opt/dockerinstall/python3/ yum -y install gcc yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel…

【语音转文本新体验】Windows部署Whisper Web结合内网穿透轻松远程转录——“cpolar内网穿透”

文章目录 前言1.本地部署Whisper Web1.1 安装git1.2 安装Node.js1.3 运行项目 2. Whisper Web使用介绍3. 安装Cpolar内网穿透4. 配置公网地址5. 公网访问测试6. 配置固定公网地址 前言 OpenAI开源的 Whisper 语音转文本模型效果都说还不错&#xff0c;今天就给大家推荐 GitHub…

[A-14]ARMv8/ARMv9-Memory-内存模型的类型(Device Normal)

ver0.1 [看前序文章有惊喜。] 前言 前面花了很大的精力把ARM构建的VMSA中的几个核心的议题给大家做了介绍,相信大家已经能够理解并掌握ARM的内存子系统的工作原理大致框架。接下来我们会规划一些文章,对ARM内存子系统的一些细节做一下介绍,使ARM的内存子系统更加的丰满。本…

JetBrains IDE中GPU进程(JCEF)重启问题(Too many restarts of GPU-process)解决方案

目录 前言1. GPU进程重启问题概述1.1 什么是GPU进程重启问题&#xff1f;1.2 该问题带来的影响 2. GPU进程重启问题的原因分析2.1 显卡驱动的兼容性问题2.2 系统资源的限制2.3 JCEF组件的设置不合理 3. 解决方案3.1 方法一&#xff1a;通过自定义属性禁用GPU加速3.2 方法二&…

NVR批量管理软件/平台EasyNVR多个NVR同时管理支持UDP和TCP传输协议

随着科技的飞速发展&#xff0c;视频技术已成为现代社会不可或缺的一部分&#xff0c;广泛应用于安防监控、娱乐传播、在线教育、电商直播等多个领域。在这一背景下&#xff0c;NVR管理平台EasyNVR作为一款高效、灵活的视频监控管理系统&#xff0c;正经历着前所未有的发展机遇…

医学影像基础:常见的医学影像学术语和概念

目录 1. 基本影像术语 2. X射线相关术语 3. CT相关术语 4. MRI相关术语 5. 超声相关术语 6. 核医学相关术语 7. 影像质量和技术术语 8. 临床影像术语 总结 在医学影像学中&#xff0c;有许多术语和概念是常用且重要的。了解这些术语和概念有助于更好地理解影像报告、与…

稀土抗紫外屏蔽剂在化妆品上的应用

稀土抗紫外屏蔽剂的作用原理 稀土元素具有独特的电子结构&#xff0c;能够吸收和散射紫外线。其作用主要有以下几个方面&#xff1a; 1. 吸收紫外线&#xff1a;稀土元素可以吸收特定波长的紫外线&#xff0c;将其能量转化为热能或其他形式的能量&#xff0c;从而减少紫外线对…

2024 前端面试题!!! html css js相关

常见的块元素、行内元素以及行内块元素&#xff0c;三者有何不同&#xff1f;​​​​​​​ HTML、XML、XHTML它们之间有什么区别&#xff1f;​​​​​​​ DOCTYPE(⽂档类型) 的作⽤ Doctype是HTML5的文档声明&#xff0c;通过它可以告诉浏览器&#xff0c;使用哪一个HTM…

Android Studio安装完成后,下载gradle-7.4-bin.zip出现连接超时

文章目录 问题原因&#xff1a;因为下载镜像是谷歌&#xff0c;属于外网&#xff0c;不好正常连接&#xff0c;下载依赖。解决方法&#xff1a;找到gradle-wrapper.properties文件&#xff0c;修改镜像&#xff0c;如下图&#xff0c;然后再单击try again重新下载。 问题原因&a…

IntelliJ IDEA 2024社区版保姆及图文安装教程

1.下载 这里我们安装的是2024.2.3版本IntelliJ IDEA Community Edition 下载地址:https://www.jetbrains.com/idea/download/other.html 如果下载不便可以使用本文的网盘资源下载 2.安装 打开软件点击下一步 在安装过程中&#xff0c;我们可以选择安装的目录&#xff0c;也…