Xenで使用しているディスクイメージを拡張する

ゲストOSのルートパーティションが少なくなってきたため、拡張した際のメモ

拡張前のゲストOSの状態

パーティション状態

/dev/xvda1 /boot
/dev/xvda2 LVM

LVMパーティションの中身

/dev/VolGroup/lv_root   /
/dev/VolGroup/lv_swap swap

ディスク状態

$ df -h

Filesystem                    Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root  8.5G  5.9G  2.1G  74% /
tmpfs                         935M     0  935M   0% /dev/shm
/dev/xvda1                    485M   33M  427M   8% /boot

作業履歴

ディスクファイルを拡張→LVMを拡張→ファイルシステムを拡張の順に行う

ディスクファイルを拡張

ホストOS(Dom0)側で、ディスクイメージファイルを+5GB追加する。

  1. ゲストOSをシャットダウン
  2. 現在のディスクイメージファイルを確認
    # ls -lh hda.img
    
    -rwxr-xr-x 1 root users 10G  7月 16 19:36 hda.img
    
  3. バックアップ
    # cp hda.img hda.img.bak
    
  4. hda.imgファイルの後ろに5G分データを追加
    # dd if=/dev/zero bs=512M count=10  >> hda.img
    
    10+0 records in
    10+0 records out
    5368709120 bytes (5.4 GB) copied, 69.9841 seconds, 76.7 MB/s
    
  5. 追加後のディスクイメージファイル
    # ll -h hda.img
    
    -rwxr-xr-x 1 root users 15G  7月 16 19:38 hda.img
    

ゲストOS側で追加した領域を認識させる

  1. ゲストOSを起動し、ログイン
  2. ディスク状態確認
    $ df -h
    
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root  8.5G  5.9G  2.1G  74% /
    tmpfs                         935M     0  935M   0% /dev/shm
    /dev/xvda1   
    
  3. xvda2を一旦削除して、再度限界まで領域を確保する
    # fdisk /dev/xvda
    
    コマンド (m でヘルプ): p
    
    ディスク /dev/xvda: 16.1 GB, 16106127360 バイト
    ヘッド 255, セクタ 63, シリンダ 1958
    Units = シリンダ数 of 16065 * 512 = 8225280 バイト
    セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    ディスク識別子: 0x000d561d
    
    デバイス ブート      始点        終点     ブロック   Id  システム
    /dev/xvda1   *           1          64      512000   83  Linux
    パーティション 1 は、シリンダ境界で終わっていません。
    /dev/xvda2              64        1306     9972736   8e  Linux LVM
    
    コマンド (m でヘルプ): d
    パーティション番号 (1-4): 2
    
    コマンド (m でヘルプ): p
    
    ディスク /dev/xvda: 16.1 GB, 16106127360 バイト
    ヘッド 255, セクタ 63, シリンダ 1958
    Units = シリンダ数 of 16065 * 512 = 8225280 バイト
    セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    ディスク識別子: 0x000d561d
    
    デバイス ブート      始点        終点     ブロック   Id  システム
    /dev/xvda1   *           1          64      512000   83  Linux
    パーティション 1 は、シリンダ境界で終わっていません。
    
    コマンド (m でヘルプ): n
    コマンドアクション
       e   拡張
       p   基本パーティション (1-4)
    p
    パーティション番号 (1-4): 2
    最初 シリンダ (64-1958, 初期値 64):
    初期値 64 を使います
    Last シリンダ, +シリンダ数 or +size{K,M,G} (64-1958, 初期値 1958):
    初期値 1958 を使います
    
    コマンド (m でヘルプ): p
    
    ディスク /dev/xvda: 16.1 GB, 16106127360 バイト
    ヘッド 255, セクタ 63, シリンダ 1958
    Units = シリンダ数 of 16065 * 512 = 8225280 バイト
    セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    ディスク識別子: 0x000d561d
    
    デバイス ブート      始点        終点     ブロック   Id  システム
    /dev/xvda1   *           1          64      512000   83  Linux
    パーティション 1 は、シリンダ境界で終わっていません。
    /dev/xvda2              64        1958    15214611   83  Linux
    
    コマンド (m でヘルプ): t
    パーティション番号 (1-4): 2
    16進数コード (L コマンドでコードリスト表示): 8e
    領域のシステムタイプを 2 から 8e (Linux LVM) に変更しました
    
    コマンド (m でヘルプ): p
    
    ディスク /dev/xvda: 16.1 GB, 16106127360 バイト
    ヘッド 255, セクタ 63, シリンダ 1958
    Units = シリンダ数 of 16065 * 512 = 8225280 バイト
    セクタサイズ (論理 / 物理): 512 バイト / 512 バイト
    I/O size (minimum/optimal): 512 bytes / 512 bytes
    ディスク識別子: 0x000d561d
    
    デバイス ブート      始点        終点     ブロック   Id  システム
    /dev/xvda1   *           1          64      512000   83  Linux
    パーティション 1 は、シリンダ境界で終わっていません。
    /dev/xvda2              64        1958    15214611   8e  Linux LVM
    
    コマンド (m でヘルプ): w
    パーティションテーブルは変更されました!
    
    ioctl() を呼び出してパーティションテーブルを再読込みします。
    
    警告: パーティションテーブルの再読込みがエラー 16 で失敗しました: デバイスもしくはリソースがビジー状態です。
    カーネルはまだ古いテーブルを使っています。新しいテーブルは
    次回リブート時か、partprobe(8)またはkpartx(8)を実行した後に
    使えるようになるでしょう
    ディスクを同期しています。
    
  4. ゲストOS再起動
  5. PVのリサイズ
    # pvresize /dev/xvda2
    
      Physical volume "/dev/xvda2" changed
      1 physical volume(s) resized / 0 physical volume(s) not resized
    
  6. LVの状態
    # lvdisplay
    
      --- Logical volume ---
      LV Path                /dev/VolGroup/lv_root
      LV Name                lv_root
      VG Name                VolGroup
      LV UUID                wBm0xK-VKJG-1XL8-WUV9-T72m-PeR3-BGdomH
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2014-02-23 20:29:04 +0900
      LV Status              available
      # open                 1
      LV Size                8.54 GiB
      Current LE             2186
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
    
      --- Logical volume ---
      LV Path                /dev/VolGroup/lv_swap
      LV Name                lv_swap
      VG Name                VolGroup
      LV UUID                AfpcwD-l3Kw-5Z7W-hKy6-hT69-oqEg-kt9Uh0
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2014-02-23 20:29:08 +0900
      LV Status              available
      # open                 1
      LV Size                992.00 MiB
      Current LE             248
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:1
    
  7. LVのリサイズ(/dev/VolGroup/lv_rootを5G拡張)
    # lvextend -L +5G /dev/VolGroup/lv_root
    
      Extending logical volume lv_root to 13.54 GiB
      Logical volume lv_root successfully resized
    
  8. 確認
    # lvdisplay
    
      --- Logical volume ---
      LV Path                /dev/VolGroup/lv_root
      LV Name                lv_root
      VG Name                VolGroup
      LV UUID                wBm0xK-VKJG-1XL8-WUV9-T72m-PeR3-BGdomH
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2014-02-23 20:29:04 +0900
      LV Status              available
      # open                 1
      LV Size                13.54 GiB
      Current LE             3466
      Segments               2
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:0
    
      --- Logical volume ---
      LV Path                /dev/VolGroup/lv_swap
      LV Name                lv_swap
      VG Name                VolGroup
      LV UUID                AfpcwD-l3Kw-5Z7W-hKy6-hT69-oqEg-kt9Uh0
      LV Write Access        read/write
      LV Creation host, time localhost.localdomain, 2014-02-23 20:29:08 +0900
      LV Status              available
      # open                 1
      LV Size                992.00 MiB
      Current LE             248
      Segments               1
      Allocation             inherit
      Read ahead sectors     auto
      - currently set to     256
      Block device           253:1
    
    # df -h
    
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root  8.5G  5.9G  2.1G  74% /
    tmpfs                         935M     0  935M   0% /dev/shm
    /dev/xvda1                    485M   33M  427M   8% /boot
    
  9. ファイルシステムのリサイズ
    # resize2fs /dev/mapper/VolGroup-lv_root
    
    resize2fs 1.41.12 (17-May-2010)
    Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
    old desc_blocks = 1, new_desc_blocks = 1
    Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 3549184 (4k) blocks.
    The filesystem on /dev/mapper/VolGroup-lv_root is now 3549184 blocks long.
    
    # df -h
    
    Filesystem                    Size  Used Avail Use% Mounted on
    /dev/mapper/VolGroup-lv_root   14G  6.0G  6.8G  47% /
    tmpfs                         935M     0  935M   0% /dev/shm
    /dev/xvda1                    485M   33M  427M   8% /boot
    

参考サイト

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中