Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

Linux ゲストで VMDK サイズを拡張してみる。

$
0
0

ESXi では VM のディスク(VMDKファイル)拡張は簡単にできます。

その VMKD 拡張後にゲスト側ではどうしたらよいか聞かれることが多いので

Linux ゲストを例として、ディスク拡張をやってみます。

 

VMの仮想ディスク拡張の考え方。

仮想ディスクのサイズ拡張は、VMだけでなくゲスト側でも作業が必要です。

下のレイヤから順に拡張作業することになります。

ちなみに、今回はの環境は・・・

  • ESXi は、6.0 U1 。VMバージョンは 11。(vmx-11)
  • VM では「準仮想化」の SCSI コントローラを使用している。
  • ゲスト OS は、Oracle Linux 6.7。 (ただし仮想マシンのタイプは RHEL6)
  • 拡張する VMDK は、VM の「ハードディスク 2」。ゲスト OS では /dev/sdb と認識されている。
  • ゲスト OS では、ディスクは単一パーティション(/dev/sdb1)だけ。
  • ゲスト OS では、/dev/sdb1 に ext4 ファイルシステムを作成している。
  • /dev/sdb では、ゲスト OS での LVM は使用していない。

vmdk-extend.png

 

最初の状態を確認しておきます。

 

OS は、Oracle Linux 6.7 です。RHEL 6.x や CentOS 6.x でも同様な手順が使えるはずです。

[root@ol67-vm01 ~]# cat /etc/oracle-release

Oracle Linux Server release 6.7

 

パーティションを見てみます。

今回、拡張する VMDK は /dev/sdb で、パーティションは /dev/sdb1 です。

[root@ol67-vm01 ~]# cat /proc/partitions | grep sdb

   8       16   10485760 sdb

   8       17   10485744 sdb1

 

今回は sfdisk コマンドでパーティション拡張してみます。

sfdisk でも、初期状態を見ておきます。

※-uM は MB 表示、-uS はセクタ表示です。

[root@ol67-vm01 ~]# sfdisk -l -uM /dev/sdb

 

ディスク /dev/sdb: シリンダ数 10240、ヘッド数 64、32 セクタ/トラック

Units = 1048576 バイトをメガバイト、1024 バイトのブロック、0 から数えます

 

デバイス ブート 始点   終点   MiB  #ブロック   Id  システム

/dev/sdb1         0+ 10239  10240-  10485744   83  Linux

/dev/sdb2         0      -      0          0    0  空

/dev/sdb3         0      -      0          0    0  空

/dev/sdb4         0      -      0          0    0  空

 

[root@ol67-vm01 ~]# sfdisk -l -uS /dev/sdb

 

ディスク /dev/sdb: シリンダ数 10240、ヘッド数 64、32 セクタ/トラック

ユニット = 512 バイトのセクタ、0 から数えます

 

デバイス ブート    始点      終点    #セクタ  Id システム

/dev/sdb1            32  20971519   20971488  83  Linux

/dev/sdb2             0         -          0   0  空

/dev/sdb3             0         -          0   0  空

/dev/sdb4             0         -          0   0  空

 

ファイルシステムは ext4 にしています。だいたい 10 GB です。

[root@ol67-vm01 ~]# df -hT

Filesystem           Type   Size  Used Avail Use% Mounted on

/dev/mapper/vg_ol67min-lv_root

                     ext4    14G  1.7G   12G  14% /

tmpfs                tmpfs  873M     0  873M   0% /dev/shm

/dev/sda1            ext4   477M   72M  376M  16% /boot

/dev/sdb1            ext4   9.8G   23M  9.2G   1% /u01

 

ファイルシステム上のファイルが読み取れることを確認しておきます。

[root@ol67-vm01 ~]# cat /u01/test.txt

abcd

efg

 

 

1. 仮想ディスク(VMDK)の拡張。

 

vSphere Web Client で作業します。

拡張したい VMDK を接続している VM の「設定の編集」の、

「仮想ハードウェア」→「ハードディスク 2」のサイズを増やします。

※逆に、サイズを縮小することはできません。

 

現状では、10GB です。

vmdk-extend-01.png

 

サイズを 20GB に増やしました。

vmdk-extend-02.png

 

VM のサマリ画面でも、容量が 20GB になったことがわかります。

vmdk-extend-03.png

 

2. パーティションの拡張。

 

これは、Linux ゲスト に直接ログインして作業します。

 

まず、ファイルシステムをアンマウントしておきます。

今回、/dev/sdb1 は、/u01 にマウントしています。

※ディレクトリやファイルをつかんでいるアプリケーションなどは停止しておく必要があります。

[root@ol67-vm01 ~]# umount /u01

 

この時点では、まだ VMDK のサイズ拡張が認識されていないはずです。

[root@ol67-vm01 ~]# cat /proc/partitions | grep sdb

   8       16   10485760 sdb

   8       17   10485744 sdb1

 

パーティションテーブルを、いったん再読み込みします。

[root@ol67-vm01 ~]# sfdisk -R /dev/sdb

 

VMDK の拡張が認識されます。

[root@ol67-vm01 ~]# cat /proc/partitions | grep sdb

   8       16   20971520 sdb

   8       17   10485744 sdb1

 

/dev/sdb1 パーティションを拡張します。

今回は、開始セクタ(sfdisk -l -uS 表示の「開始」)が 32 なので、

[root@ol67-vm01 ~]# sfdisk -l -uS /dev/sdb

 

ディスク /dev/sdb: シリンダ数 20480、ヘッド数 64、32 セクタ/トラック

ユニット = 512 バイトのセクタ、0 から数えます

 

デバイス ブート    始点      終点    #セクタ  Id システム

/dev/sdb1            32 20971519   20971488  83  Linux

/dev/sdb2             0         -          0   0  空

/dev/sdb3             0         -          0   0  空

/dev/sdb4             0         -          0   0  空

 

32 セクタから末尾まで拡張してみます。

[root@ol67-vm01 ~]# echo '32,,' | sfdisk -uS /dev/sdb

現在、誰もこのディスクを使っていないかを調べます...

OK

 

ディスク /dev/sdb: シリンダ数 20480、ヘッド数 64、32 セクタ/トラック

古い場面:

ユニット = 512 バイトのセクタ、0 から数えます

 

デバイス ブート    始点      終点    #セクタ  Id システム

/dev/sdb1            32  20971519   20971488  83  Linux

/dev/sdb2             0         -          0   0  空

/dev/sdb3             0         -          0   0  空

/dev/sdb4             0         -          0   0  空

新たな場面:

ユニット = 512 バイトのセクタ、0 から数えます

 

デバイス ブート    始点      終点    #セクタ  Id システム

/dev/sdb1            32  41943039   41943008  83  Linux

/dev/sdb2             0         -          0   0  空

/dev/sdb3             0         -          0   0  空

/dev/sdb4             0         -          0   0  空

警告: ブート可能な基本パーティションがありません

LILO にとっては問題ありませんが、DOS MBR はこのディスクをブートできなく

なってしまいます。

新たなパーティションの書き込みに成功

 

パーティションテーブルを再読み込み中...

 

もし、DOS パーティションを作成または変更したならば -- たとえば /dev/foo7 、

dd(1) をつかって最初の 512 バイトをゼロにして下さい:

dd if=/dev/zero of=/dev/foo7 bs=512 count=1

(詳細は fdisk(8)を見てください。)

 

この時点だと、まだ /dev/sdb1 に作成された ext4 のファイルシステムは拡張されていません。

[root@ol67-vm01 ~]# mount /u01

[root@ol67-vm01 ~]# df -hT /u01

Filesystem     Type  Size  Used Avail Use% Mounted on

/dev/sdb1      ext4  9.8G   23M  9.2G   1% /u01

 

3. ファイルシステムの拡張。

 

引き続き、Linux ゲスト にて作業します。

いちおう、ファイルシステムをアンマウントしておきます。

[root@ol67-vm01 ~]# umount /u01

 

そして、ファイルシステムチェック(e2fsck)を実施した後に、

ファイルシステムを拡張(resize2fs )します。

[root@ol67-vm01 ~]# e2fsck -f /dev/sdb1

e2fsck 1.43-WIP (20-Jun-2013)

Pass 1: Checking inodes, blocks, and sizes

Pass 2: Checking directory structure

Pass 3: Checking directory connectivity

Pass 4: Checking reference counts

Pass 5: Checking group summary information

/dev/sdb1: 12/655360 files (0.0% non-contiguous), 79664/2621436 blocks

[root@ol67-vm01 ~]# resize2fs /dev/sdb1

resize2fs 1.43-WIP (20-Jun-2013)

Resizing the filesystem on /dev/sdb1 to 5242876 (4k) blocks.

The filesystem on /dev/sdb1 is now 5242876 blocks long.

 

これで、ファイルシステムも 20GB に拡張されました。

[root@ol67-vm01 ~]# mount /u01

[root@ol67-vm01 ~]# df -hT /u01

Filesystem     Type  Size  Used Avail Use% Mounted on

/dev/sdb1      ext4   20G   28M   19G   1% /u01

 

もともと配置していたファイルが読み取れています。

[root@ol67-vm01 ~]# cat /u01/test.txt

abcd

efg

 

Linux のディストリビューションや、LVM 利用の有無、ファイルシステムの種類によって

使用するツールやコマンドラインは変わりますが、このような流れで VM のディスク拡張が可能です。

また、実際にディスク拡張をする場合は、

事前に拡張対象ファイルシステムにあるデータのバックアップを取得しておくとよいと思います。

 

以上、VM のディスク拡張についてでした。


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>