仮想サーバのパフォーマンスで、ネットワークやディスクアクセスが問題になりそうなことが分かってきた。(CPUやメモリは、バーチャルでもリアルでもあまり影響しないらしい。)
このうち、ネットワークは、仮想サーバごと、別のイーサネットカードに割り当てればスループットは改善されそう。
じゃぁ、ディスクはどうなんだというと、一応複数のHDDデバイスを扱えるのならば、40GBのディスク1本に対してアクセスするよりも、10GBのHDDを4本用意した方が有利なんじゃないかと。
しかも、IDEよりもSCSIドライバを使ってアクセスした方が有利なんじゃないかと。
また、可変ディスクよりも容量固定ディスクの方が速いんじゃないかと。
仮想化による性能劣化
第2回 実測! 物理マシンと仮想マシンの性能差は?
もしくは、当初はひとつのディスクで運用しても良いが、後々別ディスクに移動する方法をあらかじめマスターしておきたい。
■結果
後で追加したSCSIディスクを認識させ、/varとして使うことに成功。
この勢いで/home、/usrなどもSCSIに移せば、システムディスクはIDEで、その他ユーザデータがSCSIという環境になる。(のかな?それでいいのかな?自分は満足か?)
さて、実運用でパフォーマンス的に有利なのはどっちなのか?
※これって、WindowsでシステムをCドライブ、データベースやユーザデータをDドライブに入れる感覚とも似てるな。
■手順
■VirtualServerで動作するLinuxで仮想SCSIディスクを増設する
・バーチャルマシンの構成で、SCSIアダプタを追加する。
SCSIアダプタID:7
・バーチャルディスクの追加
容量固定のバーチャルハードディスク
scsidisk1.vhd →/var用に10GB
scsidisk2.vhd →/usr用に10GB
scsidisk3.vhd →/home用に10GB
scsidisk4.vhd →/opt用に10GB
※容量固定の方がパフォーマンスが良さそう(裏付けなし)
・バーチャルマシンへのハードディスクの追加
バーチャルハードディスク2:SCSI 0 ID 0 に接続
バーチャルハードディスク3:SCSI 0 ID 1 に接続
バーチャルハードディスク4:SCSI 0 ID 2 に接続
バーチャルハードディスク5:SCSI 0 ID 3 に接続
ここから先はバーチャルマシンにログインして、端末で操作。
・SCSIを有効にする
# chkconfig --list vmadd-scsi
vmadd-scsi 0:off 1:off 2:off 3:on 4:off 5:on 6:off
# chkconfig vmadd-scsi off
# chkconfig --list vmadd-scsi
vmadd-scsi 0:off 1:off 2:off 3:off 4:off 5:off 6:off
・リブート
・起動時メッセージの確認
dmesgコマンドで、SCSIディスクが認識されていることを確認。
・シングルユーザモードで起動
LILO boot:linux single
※シングルユーザモードでは、ネットワークは使えない
GRUBでシングルモードに移行する場合
→http://www.atmarkit.co.jp/flinux/rensai/linuxtips/488bootsingle.html
ブート開始直後に”E”を押し、ブート選択画面を表示させる
起動したいOSのイメージを選択しEキー
kernal〜の行を選択しEキー
編集画面に映るので、行末にスペースとsingleを入力してEnterキーを押す
bボタンを押してブート開始
・ブートシーケンスでSCSIが認識されていることを確認
・領域を作成する
fdisk /dev/sda
n ←新規作成
p ←基本領域(1-4)
1 ←領域番号(1-4)
1 ←最初のシリンダ
4096 ←終点シリンダ(デフォルトは終点Enter)
w ←結果の書き込み(反映)
・フォーマット
mke2fs -c /dev/sda1
※-cオプションは、クラスタのチェック
ここで -jオプションを付けるとext3になる。
http://www.atmarkit.co.jp/flinux/rensai/fs04/fs04b.html
# mke2fs -j /dev/hdXX
# mkfs.ext3 /dev/hdXX
・ここまでの確認
fdisk -l
[root@localhost ~]# fdisk -l
Disk /dev/hda: 17.1 GB, 17179803648 bytes
255 heads, 63 sectors/track, 2088 cylinders
Units = シリンダ数 of 16065 * 512 = 8225280 bytes
デバイス Boot Start End Blocks Id System
/dev/hda1 * 1 2088 16771828+ 83 Linux
Disk /dev/sda: 4294 MB, 4294967296 bytes
64 heads, 32 sectors/track, 4096 cylinders
Units = シリンダ数 of 2048 * 512 = 1048576 bytes
デバイス Boot Start End Blocks Id System
/dev/sda1 1 4096 4194288 83 Linux
・マウントポイント作成
# mkdir /mnt/newvar
# mount -t ext2 /dev/sda1 /mnt/newvar
※ここで気を利かせて”ext3”などと書くとNG
(フォーマット時に-jオプションが指定されていればOK)
・ディレクトリのコピー
#cd /var
#tar cvf - . | tar xvf - -C /mnt/newvar
・/etc/fstabの修正
/dev/sda1 /var ext2 defaults 1 2
※ここも気を利かせて”ext3”などと書くとNG。
(フォーマット時に-jオプションが指定されていればOK)
※一番後ろの数字は、ブート時のチェック順で、”/”のみ1、それ以外は2だってさ
・旧ディレクトリの削除
#rm -rf /var
・もしext2で作成されたファイルシステムをext3に変更するなら
http://www.atmarkit.co.jp/flinux/rensai/linuxtips/758ext2toext3.html
http://www.atmarkit.co.jp/flinux/rensai/fs04/fs04b.html
※”/”を変更する場合は、ブートイメージの再作成が必要(らしい)
■参考サイト
@IT総合トップ > テクノロジー > Linux Square > Linux Tips Index > HDDを増設するには
@IT総合トップ > テクノロジー > Linux Square > Linux Tips Index > シングルユーザーモードで起動するには
/varの別ディスクへの移動について
@IT総合トップ > テクノロジー > Linux Square > Linux Tips Index > ext2のファイルシステムをext3に変換するには
RedHat7.2ハードディスク増設