Database JUNKY

MySQL,MariaDBを中心としたブログです

Linux OSのディスク領域を拡張する方法(VMWARE編)

Linux OSのディスク容量を拡張する方法(VMWARE編) 当サイトも色々、WEBサイトを作ってみたりとか、ファイルを置いてみたりとかしている間に、いつの間にか使用率が、90%に なってしまいました。このサイト、VMで稼動しておりまして、結構拡張は簡単なんだよね?と思いながら、実はやり方全然知りません。 そもそも、LINUXのディスク領域の拡張ってどうやるのか?自体よく知らないので、VMWAREの前にLinuxのディスク領域拡張について 勉強してみようと思います。

  • ディスク領域拡張とは? そもそもディスク領域拡張したいんだったら、ディスクを追加しろよ。というのが正解みたいで、よくよく考えてみたら、Windowsだって、領域拡張なんて できないじゃんということを、改めて認識しました。で・・、ディスクを新規で追加して一部のディレクトリを、新領域に、moveすればいいのか。。と。 こんなサイトがあったので、ここを参考にしてやってみます。 http://www.tuat.ac.jp/~sanoken/tech/unix/hd-zousetsu.html#2

VMWARE上のディスク追加方法(ESXI) VMWARE ESXI上でのディスク追加は、VMware Infrastructure Client を利用します。VMware Infrastructure Client を起動した上で、ディスクを増設したい、ホストをあらかじめシャットダウンしておいてください。

shutdown -h now

  1. ホストをシャットダウンした上で、VMware Infrastructure Clientを起動すると以下のような画面が表示されます。対象のホストを選択してください。 起動画面
  2. 対象を右クリックし、Edit Setting を選択します。 Image2
  3. 以下のようなハードウェア構成が確認できる画面が表示されますのでAddボタンをクリックします。 Image3
  4. 何を追加したいのか確認する画面が表示されますので、当然のことながらHardDiskを選択します。 Image4
  5. Create a new vartual disk を選択し、nextボタンをクリックします。 Image5
  6. Disk情報を入力します。今回はディスクのサイズは、50GBに設定しました。また、追加するディスクも、datastoreにいたしました。 browseボタンをクリックします。 Image6
  7. Datastoreは、とりあえず、空いているところを適当に選択しました。 Image7
  8. バイスはデフォルトのままにしました。 nextボタンをクリック Image8
  9. 内容を確認し、問題ないようでしたら、finish ボタンをクリックします。これでディスクが追加されます。 Image9
  10. ハードディスクが追加されたのがわかったかと思います、OKボタンをクリックしてください。以上で、VMWARE ESXIサーバのディスク追加方法を説明は終了です。 Image10

ディスク追加方法(linux) 前回追加した、ディスクを、linux側で認識できるようにしたいと思います、とりあえずもうvmwareの話は上記で解決しているものだと思いますので、 以降では、vmwareの話に触れません。

  1. 対象のホストに、rootでログインし、以下のコマンドを実行します。(これがこの環境の現状のディスク利用率です) # df -m Filesystem           1M-ブロック    使用   使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 10788      9212      1020  91% / /dev/sda1                   99        25        70  27% /boot tmpfs                      736         0       736   0% /dev/shm
  2. 次に、さきほど追加した、50GBのハードディスクが認識しているか確認します。 # fdisk -lDisk /dev/sda: 12.8 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sda1   *           1          13      104391   83  Linux /dev/sda2              14        1566    12474472+  8e  Linux LVM Disk /dev/sdb: 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes ディスク /dev/sdb は正常な領域テーブルを含んでいません ※ディスクは認識しておりますが、linux領域としては、まったく認識されていないことがわかるかと思います。
  3. 領域を認識させます。以下のコマンドを実行してください。# fdisk /dev/sdbバイスは正常な DOS 領域テーブルも、Sun, SGI や OSF ディスクラベルも 含んでいません 新たに DOS ディスクラベルを作成します。あなたが書き込みを決定するまで、変更は メモリ内だけに残します。その後はもちろん以前の内容は修復不可能になります。 このディスクのシリンダ数は 6527 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) 警告: 領域テーブル 4 の不正なフラグ 0x0000 は w(書き込み)によって 正常になります コマンド (m でヘルプ): n  
  4. プライマリパーティションを作成します。p と入力し、enter キーをクリックします。 コマンド (m でヘルプ): n コマンドアクション e   拡張 p   基本領域 (1-4) p 
  5. 領域番号に"1"を入力してENTER 領域番号 (1-4): 1
  6. 以下、パーティションのサイズを決定し、パーティションの分割を試みます。何をしているかというと、さきほど追加した50GB のディスクを、 終点 シリンダ または +サイズ または +サイズM または +サイズK (1-6527, default 6527): +10240M コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。 # fdisk -l Disk /dev/sda: 12.8 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sda1   *           1          13      104391   83  Linux /dev/sda2              14        1566    12474472+  8e  Linux LVM Disk /dev/sdb: 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sdb1               1        1246    10008463+  83  Linux # fdisk /dev/sdb このディスクのシリンダ数は 6527 に設定されています。 間違いではないのですが、1024 を超えているため、以下の場合 に問題を生じうる事を確認しましょう: 1) ブート時に実行するソフトウェア (例. バージョンが古い LILO) 2) 別の OS のブートやパーティション作成ソフト (例. DOS FDISK, OS/2 FDISK) コマンド (m でヘルプ): n コマンドアクション e   拡張 p   基本領域 (1-4) p 領域番号 (1-4): 2 最初 シリンダ (1247-6527, default 1247): 1247 終点 シリンダ または +サイズ または +サイズM または +サイズK (1247-6527, default 6527): 6527 コマンド (m でヘルプ): w 領域テーブルは交換されました! ioctl() を呼び出して領域テーブルを再読込みします。 ディスクを同期させます。 # fdisk -l Disk /dev/sda: 12.8 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sda1   *           1          13      104391   83  Linux /dev/sda2              14        1566    12474472+  8e  Linux LVM Disk /dev/sdb: 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sdb1               1        1246    10008463+  83  Linux /dev/sdb2            1247        6527    42419632+  83  Linux
  7. 上記にて、作成した2つの領域をフォーマットします。 # mkfs -t ext2 /dev/sdb1 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 1251712 inodes, 2502115 blocks 125105 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=2562719744 77 block groups 32768 blocks per group, 32768 fragments per group 16256 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 32 mounts or 180 days, whichever comes first.  Use tune2fs -c or -i to override. # mkfs -t ext2 /dev/sdb2 mke2fs 1.39 (29-May-2006) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) 5308416 inodes, 10604908 blocks 530245 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 324 block groups 32768 blocks per group, 32768 fragments per group 16384 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000, 7962624 Writing inode tables: done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 33 mounts or 180 days, whichever comes first.  Use tune2fs -c or -i to override.
  8. linux 領域が作成されているか確認してみます。 # fdisk -lDisk /dev/sda: 12.8 GB, 12884901888 bytes 255 heads, 63 sectors/track, 1566 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sda1   *           1          13      104391   83  Linux /dev/sda2              14        1566    12474472+  8e  Linux LVM Disk /dev/sdb: 53.6 GB, 53687091200 bytes 255 heads, 63 sectors/track, 6527 cylinders Units = シリンダ数 of 16065 * 512 = 8225280 bytes デバイス Boot      Start         End      Blocks   Id  System /dev/sdb1               1        1246    10008463+  83  Linux /dev/sdb2            1247        6527    42419632+  83  Linux  
  9. そろそろ、データのお引越し作業を行いたいと思います。今回の目標は、/home と /var/www をsdb1,sdb2領域に移すことにします。手始めに、mount用のディレクトリを作成します。 # mkdir /home-new # mkdir /www
  10. 上記のディレクトリに、sdb1、およびsdb2をマウントします。 # mount /dev/sdb1 /home-new # mount /dev/sdb2 /www
  11. 上記の領域を、os起動時にマウントできるように設定します。(/etc/fstabの編集) /dev/sdb1               /home-new               ext2    defaults        1 1 /dev/sdb2               /www                ext2    defaults        1 2
  12. データを、/home-new  に移動します。 # cp -a /home/. /home-new
  13. 正常に終了したら、/homeの名前を/home-oldに変更し、新たに。/homeを作成し、データがsdb1に移動しているか?確認します。 # mv /home /home-old # umount /home-new # mkdir /home # mount /dev/sdb1 /home # ll
  14. wwwディレクトリをコピーします、コピーが完了したら、/var/www をリネームします。 # cp -a /var/www/. /www/ # mv /var/www /var/www_old/
  15. 影響を最小限に抑えるため、シンボリックリンクを作成します。 # ln -s /www /var/www
  16. os をreboot します。 # shutdown -r now
  17. 再起動が完了したら、/home と /www にデータが格納されていることを確認し、/var/www_old/と、/home-oldを削除します。 # rm -rf /var/www_old/ # rm -rf /var/home-old/
  18. 結果のディスク領域の占有率が変わったか確認してみます。 # df -m Filesystem           1M-ブロック    使用   使用可 使用% マウント位置 /dev/mapper/VolGroup00-LogVol00 10788      8247      1985  81% / /dev/sda1                   99        25        70  27% /boot tmpfs                      736         0       736   0% /dev/shm /dev/sdb1                 9621       167      8966   2% /home /dev/sdb2                40775      1012     37692   3% /www
  19. 以上ですべて完了です。やることは簡単なのですが、頭を整理しておかないと、まだ必要だったディレクトリを削除するなんていうとんでもないミスをおかす危険性があるのでバックアップはちゃんととっておいたほうがいいかもしれません。