HP ProLiant ML110 G7 ESXi5.1 SATAハードディスクで異常な書き込み速度低下 解決方法とベンチマーク
11月 27, 2013 — 22:44

HP ProLiant ML110 G7でESXi5を稼働させてからゲストマシンをバックアップした際、移行前の物理マシンは長くても1時間から2時間ほどで作業が完了していたのに10時間以上かかるようになったため調べてみました

テスト環境
マシン:HP ProLiant ML110 G7
ハードディスク:WD10EFRX
ポート:光学ドライブが接続されているSATAポートの下にある予備のSATAポート
ホストOS:ESXi5.1
ゲストOS:Windows XP

BIOS設定

[Advanced Options] -> [SATA Controller Options] -> [Embedded SATA Configuration]   [Enable SATA AHCI Support]

HDDベンチマーク
ネットで言われているように恐ろしく書き込み速度が遅いです

BIOS設定

[Advanced Options] -> [SATA Controller Options] -> [Embedded SATA Configuration]   [Enable SATA AHCI Support]
[Advanced Options] -> [SATA Controller Options] -> [Drive Write Cache]   [Enabled]

HDDベンチマーク2
ディスクキャッシュを有効化すると目を疑うほど書き込み速度が改善されます

繰り返しますが、mini SASポートではなく光学ドライブ用のSATAポートでこの変化がありました
勿論、mini SASポートに接続したディスクに対しても同程度の性能向上を確認いたしました

よってコントローラ自体は同じなようです

結構ネットを探しまわってもこの事に触れているサイトは見当たらなかったので誰かの役に立てばと思います

参考サイト
[VMサーバー統合]ESXiのディスクアクセスが遅い

HP ProLiant ML110 G7 ESXi5.1 MegaRAID SAS 9260-4i
11月 27, 2013 — 22:17

これらをインストールしなくてもMegaRAID SAS 9260-4iはESXi5上で問題なくRAIDカードとして利用できますがアレイの状態が確認できないと不便なのでインストールしてみます
公式サイト(MegaRAID SAS 9260 4i)からLatest LSISAS2108/2208 Certified SMIS ProviderとMegaCLI 5.5 P1をダウンロードしてきます

※ 下記解説ではダウンロードしたファイル群はdatastore1のdriversディレクトリの中に設置しているものとします

Latest LSISAS2108/2208 Certified SMIS Providerのインストール

# esxcli software acceptance set --level=CommunitySupported
# esxcli software vib install -d /vmfs/volumes/datastore1/drivers/VMW-ESX-5.0.0-lsiprovider-500.04.V0.38-0006-offline_bundle-1154845.zip

成功すると次のようにステータスをvSphere Clientから確認できるようになります
WS000002

MegaCLI 5.5 P1のインストール

# esxcli software acceptance set --level=CommunitySupported
# mkdir MegaCLI
# mv 8.07.07_MegaCLI.zip MegaCLI
# cd MegaCLI
# unzip 8.07.07_MegaCLI.zip
# esxcli software vib install -v /vmfs/volumes/datastore1/drivers/MegaCLI/VmwareMN/vmware-esx-MegaCli-8.07.07.vib --no-sig-check

成功すると/opt/lsi/MegaCLI/の中にMegaCliコマンドと共有ライブラリlibstorelib.soが作成されています
MegaCliコマンドを使用することでRAIDカードの情報の表示や設定が行えます

しかし、これだけ書いておいて言うのもなんですが当環境(BBUなし/RAID1)ではESXi5上のゲストマシンで書き込みに対してパフォーマンス低下を確認しました・・・
ファームウエアの問題なのか相性問題なのかはっきりしていませんがこれらの組み合わせはあまりお勧めできないかもしれません

HDDベンチマーク3

参考サイト
Monitoring an LSI MegaRAID on ESXi 5
Updating LSI MegaRAID firmware in VMware ESXi 5 | Kirk Kosinski

Perl SSH接続 Net::SSH2 使い方 CentOS5
11月 20, 2013 — 10:51

PerlでSSHへ接続したくなったのでNet::SSH2を使ってみた
Net::SSH2を使うにはlibssh2-develを使用するらしいのでインストール
# yum -y install libssh2-devel

cpanを使ってNet::SSH2をインストール
# cpan -i Net::SSH2
# cpan -i Net::OpenSSH::Compat::SSH2

実装例
SSHでサーバにログインしてpublic_htmlに移動し、lsコマンドを実行する

#!/usr/bin/perl
use strict;
use warnings;
# SSHのバナーを表示したい場合
#use Net::OpenSSH::Compat::SSH2 qw(:supplant);
use Net::SSH2;

# バッファーサイズ
use constant BUFLEN => 512;

my $host = ""; # 接続先ホスト
my $user = ""; # ユーザ名
my $pass = ""; # パスワード

my ($len, $buf);

my $ssh2 = Net::SSH2->new();

$ssh2->connect($host) or die "$!";

if( $ssh2->auth_password($user,$pass)) {
    my $chan = $ssh2->channel();
    $chan->blocking(0);
    $chan->shell();

    $chan->write("cd public_html\n");
    select(undef,undef,undef,0.2);
    print $buf while ($len = $chan->read($buf, BUFLEN));

    $chan->write("ls -al ./\n");
    select(undef,undef,undef,0.2);
    print $buf while ($len = $chan->read($buf, BUFLEN));

    $chan->close();
}

これは色々使えそうですね

参考サイト
Perl Tips | Perl で、ssh でリモートのサーバにアクセスしてファイルをアップロード(SCP)する方法 (Net::SSH2)
自分イノベーション – 気まぐれ勉強メモ Net::SSH2を使ってみた
Net::SSH2と公開鍵
A little demo for Net::SSH2

ディスククオータに残ったUIDを削除する CentOS5
11月 19, 2013 — 16:43

ディスククオータに残ったUIDが以前より残ってるのが気になっていたので削除してみた

ディスククオータに既に存在しないユーザのUIDが残っている場合の例
# repquota -atv

*** Report for user quotas on device /dev/sda6
Block grace time: 7days; Inode grace time: 7days
                        Block limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      -- 7839076       0       0          33729     0     0
orbit     --    1192       0       0             80     0     0
#1683     --       0 5242880 6291456             88     0     0

ディスククオータに残っている既に存在しないユーザのUIDを削除
# edquota -p nobody 1683

これで再度確認すると削除されているはずです

参考サイト
Factory-AJ Blog: 削除したユーザが、repquota で表示されるのを削除