6.14.1 新規LVMディスクのゲストへの追加

新しいLVMディスクをOracle Linux KVMゲストに追加すると、ゲストで使用可能なディスク領域の量を増やすことができます。

ファイル・システムまたはスワップ領域のサイズを拡大するために、ゲストにLVMディスクを追加できます。この手順の実行中も、システムはオンラインのままです。

ノート:

この手順では、KVMホストゲストの両方でアクションを実行します。

すべてのステップを、rootユーザーとして実行してください。

  1. KVMホストで、/EXAVMIMAGESに十分な空きディスク領域があることを確認します。次に例を示します:
    # df -h /EXAVMIMAGES
    Filesystem                           Size  Used Avail Use%  Mounted on
    /dev/mapper/VGExaDb-LVDbExaVMImages  1.5T   39G  1.5T   3%  /EXAVMIMAGES
  2. KVMホストで、新しいディスク・イメージを作成してゲストにアタッチします。

    たとえば、次のコマンドはゲスト固有のpv2_vgexadb.imgというディスク・イメージを、ゲストdm01db01vm01.example.comに追加します。

    # /opt/exadata_ovm/vm_maker --create --disk-image /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img --attach --domain dm01db01vm01.example.com
    [INFO] Allocating an image for /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img, size 52.000000G...
    [INFO] Running 'qemu-img create /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img 52.000000G '...
    [INFO] Create label gpt on /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img.
    [INFO]  Running 'parted -a none -s /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img mklabel gpt'...
    [INFO] Running 'losetup -P -f /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img'...
    [INFO] Finding loop device...
    [INFO]   loop device is /dev/loop0
    [INFO] Finding number of sectors...
    [INFO]   109051904 sectors
    [INFO] Finding sector size...
    [INFO]   512 bytes per sector
    [INFO] Creating filesystem on /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk...
    [INFO]  Running 'mkfs -t xfs   -b size=4096 -f /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk '...
    [INFO] Checking that we have a file system on /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk...
    [INFO] Releasing loop device /dev/loop0...
    [INFO]   Removing device maps for /dev/loop0...
    [INFO]    Running 'kpartx -d -v /dev/loop0'...
    [INFO]  Removing loop device /dev/loop0...
    [INFO] ##
    [INFO] ## Finished .
    [INFO] ##
    [INFO] Created image /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img
    [INFO] Running 'vgscan --cache'...
    [INFO] -------- MANUAL STEPS TO BE COMPLETED FOR MOUNTING THE DISK WITHIN DOMU dm01db01vm01.example.com --------
    [INFO] 1. Check a disk with name /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk exists.
    [INFO] -  Check for the existence of a disk named: /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk. Use the 'lvdisplay' command and check the output.
    [INFO] 2. Create a mount directory for the new disk
    [INFO] 3. Add the following line to /etc/fstab: /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk <mount_point_from_step_2> <fstype> defaults 1 1
    [INFO] 4. Mount the new disk. Use the 'mount -a' command.
    [INFO] Note: when detaching and re-attaching the same disk multiple times, run the following command after detaching and before attaching in the guest domain:
    [INFO] 'lvm vgchange VGExaDbDisk.pv2_vgexadb.img -a -n' when re-attaching the same disk.

    この時点では、出力の最後に説明されている手動のステップを実行しないでください。ただし、手動のステップ番号1で示される論理ボリューム・パスをノートにとります。一般的に、論理ボリューム・パスの形式は/dev/VolumeGroupName/LogicalVolumeNameです。この例では、論理ボリューム・パスは/dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDiskです。

  3. KVMホストで、ゲストの使用可能なディスク・イメージをリストし、新規ディスク・イメージが作成されたことを確認します。

    前述のステップの例では、ディスク・イメージ・ファイルは/EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.imgとして識別されます。このイメージが、ゲストのディスク・イメージのリストに表示されるようになります。次に例を示します:

    # /opt/exadata_ovm/vm_maker --list --disk-image --domain dm01db01vm01.example.com
    File /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/System.img
    File /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/grid19.2.0.0.0.img
    File /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/db19.2.0.0.0-3.img
    File /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv1_vgexadb.img
    File /EXAVMIMAGES/GuestImages/dm01db01vm01.example.com/pv2_vgexadb.img
  4. ゲストで、新しく追加されたディスクを特定します。

    前述の論理ボリューム・パスとともにlvdisplayコマンドを使用します。

    # lvdisplay /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk
      --- Logical volume ---
      LV Path                /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk
      LV Name                LVDBDisk
      VG Name                VGExaDbDisk.pv2_vgexadb.img
      LV UUID                ePC0Qe-PfOX-oCoP-Pd5n-2nDj-z0KU-c9IygG
      LV Write Access        read/write
      LV Creation host, time dm01db01vm01.example.com, 2022-01-10 03:06:18 -0800
      LV Status              available
      # open                 0
      LV Size                50.00 GiB
      Current LE             12800
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           252:11
  5. ゲストで、追加したディスク用に作成された論理ボリュームおよびボリューム・グループを削除します。
    新たに作成したディスクを使用して既存のボリューム・グループを拡張するには、このステップを実行する必要があります。
    1. 論理ボリュームを削除します。

      この例では、論理ボリューム・パスは/dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDiskです。

      # lvremove /dev/VGExaDbDisk.pv2_vgexadb.img/LVDBDisk
      Do you really want to remove active logical volume VGExaDbDisk.pv2_vgexadb.img/LVDBDisk? [y/n]: y
        Logical volume "LVDBDisk" successfully removed
    2. 論理ボリュームに付属するボリューム・グループを削除します。

      この例では、ボリューム・グループ名はVGExaDbDisk.pv2_vgexadb.imgです。

      # vgremove VGExaDbDisk.pv2_vgexadb.img
        Volume group "VGExaDbDisk.pv2_vgexadb.img" successfully removed
    この時点で残っているのは、論理ボリュームもボリューム・グループもない物理ボリュームのみです。
  6. ゲストで、新しく追加されたディスクの物理ボリューム・デバイスを特定します。

    pvdisplayコマンドを使用して、新しい物理ボリュームを見つけます。

    次の例は、新しい物理ボリュームを強調するために出力が切り捨てられています。

    # pvdisplay
    ...  
      "/dev/sdf1" is a new physical volume of "<50.00 GiB"
      --- NEW Physical volume ---
      PV Name /dev/sdf1
      VG Name
      PV Size <50.00 GiB
      Allocatable NO
      PE Size 0
      Total PE 0
      Free PE 0
      Allocated PE 0
      PV UUID tfb8lM-eHe9-SPch-8UAu-pkHe-dAYx-ez3Sru
    ...
  7. ゲストで、新しい物理ボリュームを使用して、既存のボリューム・グループを拡張できます。

    次の例では、新しい物理ボリューム(/dev/sdf1)が、ボリューム・グループVGExaDbを拡張するために使用されます。このvgdisplayの出力は、VGExaDbを強調するために切り捨てられています。

    # vgdisplay -s
    ...
      "VGExaDb" 88.00 GiB [88.00 GiB used / 0 free]
    ...
    
    # vgextend VGExaDb /dev/sdf1
      Volume group "VGExaDb" successfully extended
    
    # vgdisplay -s
    ...
      "VGExaDb" <139.24 GiB [88.00 GiB used / <51.24 GiB free]
    ...

この手順によりボリューム・グループに追加される追加の領域を使用して、様々なファイル・システムのサイズを増やすには、次のトピックを参照してください。