注意:

减少并重新定位 Oracle Linux 上的卷组

简介

逻辑卷管理允许删除未使用的物理卷 (Physical Volume Management,PV) 以及移动整个卷组 (VG)。PV 的移除会缩小 VG 的整体大小。

本教程将与 Oracle Linux Volume Manager 实用程序配合使用,通过删除物理卷,然后将该卷组传输到其他系统来收缩卷组。

目标

先决条件

两个具有以下配置的 Oracle Linux 8 系统:

设置实验室环境

注意:使用免费实验室环境时,请参见 Oracle Linux Lab Basics 了解连接和其他使用说明。

  1. 如果尚未连接,请打开一个终端并通过 ssh 连接到 ol-node01 实例。

    ssh oracle@<ip_address_of_instance>
    
  2. 验证块存储卷是否存在。

    sudo lsblk
    

    空闲实验环境的输出应显示根文件系统的 /dev/sda、演示卷组的 /dev/sdb 以及可用磁盘 /dev/sdc/dev/sdd

  3. 显示一致的设备名称映射。

    免费实验室环境对连接的块存储卷使用一致的设备名称路径

    ll  /dev/oracleoci/oraclevd*
    

    输出示例:

    [oracle@ol-node01 ~]$ ll /dev/oracleoci/oraclevd*
    lrwxrwxrwx. 1 root root 6 Jun  9 13:27 /dev/oracleoci/oraclevda -> ../sda
    lrwxrwxrwx. 1 root root 7 Jun  9 13:27 /dev/oracleoci/oraclevda1 -> ../sda1
    lrwxrwxrwx. 1 root root 7 Jun  9 13:27 /dev/oracleoci/oraclevda2 -> ../sda2
    lrwxrwxrwx. 1 root root 7 Jun  9 13:27 /dev/oracleoci/oraclevda3 -> ../sda3
    lrwxrwxrwx. 1 root root 6 Jun  9 13:27 /dev/oracleoci/oraclevdb -> ../sdd
    lrwxrwxrwx. 1 root root 6 Jun  9 13:45 /dev/oracleoci/oraclevdd -> ../sdc
    

    请注意,在 Oracle Cloud Infrastructure 中定义的一致名称结尾与 Linux OS 提供的设备名称不匹配。以后在云控制台中分离和连接块存储卷时,了解这些映射至关重要。

从 VG 中删除 PV

从卷组中删除活动物理卷之前,请将物理卷上的任何数据和逻辑卷移动到其他一些空闲 PV。

  1. 检查物理卷使用的磁盘空间。

    sudo pvs -o+pv_used
    

    输出示例:

    [oracle@ol-node01 ~]$ sudo pvs -o+pv_used
      PV         VG        Fmt  Attr PSize  PFree  Used  
      /dev/sda3  ocivolume lvm2 a--  45.47g     0  45.47g
      /dev/sdb   labvolume lvm2 a--  49.98g 47.98g  2.00g
    

    输出显示 /dev/sdb PV 使用 2g。

  2. 扩展卷组。

    通过扩展卷组来添加另一个物理卷。

    sudo vgextend labvolume /dev/sdc
    

    添加 /dev/sbc 可提供免费的物理卷,以接受从原始 /dev/sdb 物理卷传输数据和逻辑卷。

  3. 验证是否已添加 /dev/sdc 物理卷。

    sudo pvs
    

    输出示例:

    [oracle@ol-node01 ~]$ sudo pvs
      PV         VG        Fmt  Attr PSize  PFree 
      /dev/sda3  ocivolume lvm2 a--  45.47g     0 
      /dev/sdb   labvolume lvm2 a--  49.98g 47.98g
      /dev/sdc   labvolume lvm2 a--  49.98g 49.98g
    
  4. 将现有数据和逻辑卷移动到新添加的空闲 PV。

    sudo pvmove /dev/sdb /dev/sdc
    

    pvmove 命令允许将源 PV 上的已分配物理区 (PE) 移动到一个或多个其他 PV。如果未指定目标 PV,传输会对卷组使用常规分配规则。任务在联机完成时没有中断,命令行输出显示进度。

    有关详细信息,请参阅 pvmove(8) 手册。

  5. 验证移动是否已完成。

    sudo pvs -o+pv_used
    

    输出示例:

    [oracle@ol-node01 ~]$ sudo pvs -o+pv_used
      PV         VG        Fmt  Attr PSize  PFree  Used  
      /dev/sda3  ocivolume lvm2 a--  45.47g     0  45.47g
      /dev/sdb   labvolume lvm2 a--  49.98g 49.98g     0 
      /dev/sdc   labvolume lvm2 a--  49.98g 47.98g  2.00g
    

    输出显示 /dev/sdc PV 使用 2g,/dev/sdb 未使用。

  6. 释放原始物理卷。

    sudo vgreduce labvolume /dev/sdb
    
  7. 确认原始物理卷完全空闲。

    sudo pvs -o+pv_used
    

    输出示例:

    [oracle@ol-node01 ~]$ sudo pvs -o+pv_used
      PV         VG        Fmt  Attr PSize  PFree  Used  
      /dev/sda3  ocivolume lvm2 a--  45.47g     0  45.47g
      /dev/sdb             lvm2 ---  50.00g 50.00g     0 
      /dev/sdc   labvolume lvm2 a--  49.98g 47.98g  2.00g
    

    请注意,卷组名称 labvolume 不再与物理卷 /dev/sdb 关联,现在已与 /dev/sdc 关联。

  8. 删除原始物理卷。

    sudo pvremove /dev/sdb
    

    现在,物理卷 /dev/sdb 可在其他卷组中使用,也可以从系统中以物理方式删除。

在系统之间移动 PV

LVM 允许将整个卷组从一个系统移动到另一个系统。该示例将名为 labvolume 的卷组和挂载在 /u01 上的逻辑卷从 ol-node01 移至 ol-node02

  1. ol-node01 上卸载文件系统。

    sudo umount /u01
    
  2. 使卷组处于非活动状态。

    将卷组标记为非活动意味着组中的逻辑卷不可访问且无法更改。此卷组的停用进一步使其对内核未知。

    sudo vgchange -an labvolume
    
  3. 准备要删除的卷。

    sudo vgexport labvolume
    
  4. 确定块存储卷设备路径。

    下一步将从实例 ol-node01 中删除与卷组 labvolume 关联的物理卷 /dev/sdc。要在云控制台中选择要分离的正确块设备,请获取与 PV /dev/sdc 关联的块设备路径名 oraclevd*

    ll /dev/oracleoci/oraclevd* | grep sdc
    
  5. ol-node01 服务器中删除磁盘。

    使用物理服务器关闭系统并拔出磁盘。但是,在免费实验室环境中,必须将卷与实例分离。

    尽管有几种方法可以完成此任务,但我们仍使用云控制台。

    1. 登录云控制台。

    2. 打开导航菜单,然后单击计算。在计算下,单击实例

      导航菜单

    3. 单击列表中的 ol-node01 实例。

    4. 在页面左下方的 Resources 下,选择 Attached block volumes

      资源菜单

    5. 使用与物理卷 /dev/sdc 关联的块设备 Name 旁边的三点菜单,然后选择 Detach

      分离卷

      重要提示:要选择的块设备 Name 是与上面Determine the block volume device path 步骤中报告的 Device path 匹配的名称。它可能与在提供的屏幕截图中选择的名称不匹配。

    6. 在弹出窗口中选择 Ok 按钮,然后等待卷分离。

    7. 使用页面顶部的面包屑,然后选择实例

      痕迹菜单

    8. 在列表中选择 ol-node02 实例。

    9. 在左下方的 Resources 下,选择 Attached block volumes

    10. 单击 Attach block volume 按钮。

    11. 在弹出窗口中,连接从 ol-node01 中移除的块存储卷。

      选择先前与 Volumeol-node01 实例分离的块设备 Name

      然后,为 Device path 选择 oraclevdb,为 Attachment type 选择 Paravirtualized,为 Access 选择 Read/write

      附加卷设置
      连接类型设置

    12. 单击 Attach 按钮,然后等待卷附加。

  6. 打开新终端并通过 ssh 连接到 ol-node02 实例。

    ssh oracle@<ip_address_of_instance>
    
  7. 验证新块存储卷是否存在。

    sudo lsblk
    

    空闲实验环境的输出应显示根文件系统的 /dev/sda 和卷组的 /dev/sdb

  8. 扫描连接的卷。

    运行初始扫描以识别连接的 LVM 物理卷。

    sudo pvscan
    

    输出示例:

    [oracle@ol-node02 ~]$ sudo pvscan
      PV /dev/sdb     is in exported VG labvolume [49.98 GiB / 47.98 GiB free]
      PV /dev/sda3   VG ocivolume       lvm2 [45.47 GiB / 0    free]
      Total: 2 [<95.46 GiB] / in use: 2 [<95.46 GiB] / in no VG: 0 [0   ]
    

    扫描显示 PV 设备 /dev/sdb 包含从 ol-node01 导出卷组。

  9. 导入卷组。

    sudo vgimport labvolume
    
  10. 激活卷组。

    sudo vgchange -ay labvolume
    
  11. 挂载文件系统。

    sudo mkdir /u01
    sudo mount /dev/labvolume/data /u01
    
  12. 验证文件系统上的空间。

    df -h
    

    输出示例:

    [oracle@ol-node02 ~]$ df -h
    Filesystem                  Size  Used Avail Use% Mounted on
    ...
    /dev/mapper/labvolume-data  2.0G  6.0M  1.8G   1% /u01
    

详细信息:

更多学习资源

浏览 docs.oracle.com/learn 上的其他实验室,或者在 Oracle Learning YouTube 频道上访问更多免费学习内容。此外,请访问 education.oracle.com/learning-explorer 以成为 Oracle 学习资源管理器。

有关产品文档,请访问 Oracle 帮助中心