「VMWare」カテゴリーアーカイブ

自分の尻拭いプロジェクト – 2 – Zabbix 4.4をCentOS 8(8.0.1905 (Core))にインストールする

ども。こんばんは。

気づけば年末年始の休暇もあと1日となりました。

この年末年始の最後に、やかして吹き飛ばした旧Zabbixの代わりに、新しいZabbixを構築します。

せっかくなのでCentOS 8にインストールします。

以下、とりあえずzabbixがうごいたやったーくらいの手順です。
SELinuxやfirewalldもノリで無効化しています。

apacheの設定周りとかもデフォルトのままです。

■CentOS 8.0.1905のインストール

VMWare ESXi 6.7.0U3上に仮想マシンを作成してDVD ISOファイルをもとにインストールします。
インストーラーは7とあんまり変わらないです。

とりあえず必要なものは後で入れるので、サーバにしました。
※あとでランレベルは3にします。

とりあえず入りました。

あれ、ifconfigとかnetstatとかそのまま使えちゃうのね。ipとかssとかせっかく覚えかけてたのに。

■CentOS 8 初期設定(1) ランベルを3にしたい

昔の人なので、inittabを探し回ってましたが、今はないようですので、以下のコマンドで変更します。
※CentOS 7系からこれのようですね。おじさんなので、inittabとかinit 3とかrunlevelな人ですorz

# systemctl set-default multi-user.target

以下確認コマンド

# systemctl get-default

■CentOS 8 初期設定(2) SELinuxを無効にする

無効にします。が、やらかしてカーネルパニックになります。
※今でもカーネルパニックっていうのかな。

Failed to load SELinux policy, freezing.

昔ながらのやらかして、/etc/sysconfig/selinuxの書き間違いです。

なので、シングルユーザで入って直します・・・が、シングルユーザモードの入り方がわからない。カーネルパラメータに–singleとか追加して起動すればいいんでしょ?と思ってたらこれも違っていた。。。

4行目のroを消してrw init=/sysroot/bin/shに書き換えてctrl+xで起動します。

はいれました。chroot /sysrootしてもいいですし、今回は/etc/selinuxを直すだけなので直接編集しました。

おバカですねぇ。disabledはそっちじゃない。(このミスはCentOS 5の頃からやらかしている気がしますね)

こんな感じに直してrebootして無事起動しました。

■CentOS 8 初期設定(3) その他初期設定

firewalldの無効化とSSHのrootログインの無効化をしました。
このあたりは特に特殊なことはなかったので割愛。

■(未解決)SSH経由での操作のレスポンスが悪い

ぱっと解決できなかったので放置していますが、ログイン後の操作のレスポンスがとても悪いです。エンター押すだけでもちょっと待たされます。VMWareのコンソール上だとそんなに遅く感じないのでSSH関連かtty関連のなにかかなー。ちょっとイライラします。

これはおいおい調査します。

■CentOS 8 初期設定(4) アップデート

CentOS 8からはyumが廃止されdnfになりました。
※pythonを3系に完全移行するためにdnfに変えたらしいです。

なおyumコマンドはdnfのラッパーとして残っていますのでyum updateでもdnf updateと同義になります。

とりあえずOSはこんな感じでしょうか。

■ZABBIX 4.4のインストール

以下のURLに従います。

https://www.zabbix.com/jp/download

うちは今回、4.4 / CentOS 8 / MySQL / Apache の構成としました。

なお、コマンドどおりに実行してもうまく行かない点がありましたのでその点は補足します。

まず先にmysql-serverとmysqlのインストールが必要です。
※サーバとクライアント。普通にdnf install mysql mysql-serverとかでいいです。自動起動とか忘れずに。

上記サイトに従ってコマンドを実行してきます。

・「a. Install Zabbix repository」はそのまま。

# rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
# dnf clean all

・「b. Install Zabbix server, frontend, agent」もそのまま。

# dnf -y install zabbix-server-mysql zabbix-web-mysql zabbix-apache-conf zabbix-agent

・「c. Create initial database」は案内されたgrant文がmysql 8系では通りません。

# mysql -uroot -p
password
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘password’;
mysql> quit;

MySQL 8系ではGRANTと同時にユーザを作れなくなったようで、以下のようなエラーになります。

mysql> grant all privileges on zabbix.* to zabbix@localhost identified by ‘password’;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘identified by ‘password” at line 1

なので、ユーザ作成とGRANTをバラバラに実行します。
※passwordのところにはパスワードを設定します。
(“mysql> create database zabbix character set utf8 collate utf8_bin;”は実行できるはず。)

mysql> create user zabbix@localhost identified by ‘password’;
mysql> grant all privileges on zabbix.* to zabbix@localhost;

以下のコマンドも普通に流せました。

# zcat /usr/share/doc/zabbix-server-mysql*/create.sql.gz | mysql -uzabbix -p zabbix

あとは、サイトの記載どおりです。

とりあえずコアスイッチだけぽいっと追加しましたがうまく動いてそうです。

【バックナンバー】

ではでは。またの機会に。

自分の尻拭いプロジェクト – 1 –

ども。こんばんは。

先日のオペミスで仮想マシンを全台虚空に返したわけですが、昨日(2019/12/30)午後〜夜まで時間をかけてなんとか復旧しました。

結局ほぼ元通りの構成で面白みはないですが、バージョンがだいぶ新しくなりました。

  • AD(Windows Server 2008 R2)
    • Windows Server 2012 R2をインストールして再構築。
      ※手持ちのライセンスが2012 R2しかないので・・・。
    • NPS(RADIUS)の構築までサクッとできた。
      • ちなみにAD DSはインストールしていたけど、証明機関のをインストールしておらずPEAPが使えなくてハマった。
        証明機関さえインストールすれば解決できる。
        (旧ADはIISの証明書とかも発行してたので証明機関入ってたみたい。)
    • MacBook Airは一旦Active Directoryのバインド解除して再度バインドした。無事AD上のコンピュータに表示されたし新しい証明書もインストールされているので多分大丈夫だと思う。。。プロファイルも消えなかった。
    • 過去もハマったけど、評価版にそのままライセンス入れようとして、「このエディションのWindowsのライセンス認証にそのキーは使えません。別のキーを試してください」とか言われたので以下のコマンドでキーを登録。

      DISM /online /Set-Edition:ServerDatacenter /ProductKey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /AcceptEula

  • 大昔から動いているLinux(CentOS 5)
    • 正直作り直しは困難と判断・・・。DHCPの設定ファイルも抜き出したかったし。思い出はなかなか消せなかった。
    • あと、基本DNSがこいつで、ADもDNSはこいつを参照/更新している関係で意外と大事な役割になっている。
      (今回もADにはDNSサーバをインストールせずに作ってしまった・・・。)
    • Acronisで取得したバックアップ(tibファイル)から復元 
      • vSphere Converter Standaloneでは6.0までしかサードパーティのイメージ変換機能が実装されておらず、手元の5.0でtibをvmdkに変換・・・するも失敗。
      • しょうがないのでAcronis TrueImageのブータブルCDで頑張って復元。
      • vSphere 6.7だと、マウスが動かない。
        TABキーとかの操作だとどうもうまく行かず、マウス機能(F10とか押すとテンキーでカーソルが動かせる)で頑張った。(わざわざMacBook Airにキーボード取り付けて・・・)
      • 一部どうしても見えないボタンがあったのでTABキーとか駆使してなんとか復元。結局これが一番うまくいくなー。(数年前にも同じことした気がする。)
  • PBX
    • FreePBX STABLE SNG7-PBX-64bit-1910(FreePBX 15/Linux 7.6/Asterisk 16)で再構築。
    • アナウンス音声の日本語版が付属していて嬉しい。
    • ひかり電話とのトランク、Cisco IP Phone 7961のレジスト、内線、外線発信/着信までまさか数時間で終わるとは思わなかった。
    • 特にIP PhoneのConfigが旧FreePBXサーバのtftpbootフォルダにしかおいてないと思い込んでいたのでもう一度Config作成は絶望かと半分あきらめていましたが、過去の自分がうまく動いたときの一連のパケットキャプチャを保存してくれていたので、パケットキャプチャの中身からtftpでやりとしていたファイルを抽出して復元できました。まぁファイルとしておいておいてくれれば言うことないのですが、自分の所業なので諦めます。(どうせパケットおいておけば最悪どうにかなるだろうとか当時考えたんだろうな。)
    • FreePBXのバージョンもだいぶ変わっていたけどCisco側は設定修正なしでいけた。日本語化まで数時間でできた。
  • 監視サーバ
    • まだ未構築・・・。年明けかな。

以下、電話関連(FreePBX)のメモ。

環境、バージョンは以下の通り。

ハイパバイザー:VMware vSphere 6.7.0U3
イメージ:FreePBX STABLE SNG7-PBX-64bit-1910(CentOS 7.6ベース)
FreePBX :15
Asterisk:16

今回は全部WebUIだけで完結しましたが、以下ハマったポイントを書いておきます。

なおSIPドライバーはPJSIPです。

  • FreePBXのIPアドレス変更
    • /etc/sysconfig/network-scripts/ifcfg-eth0を編集。
      ※CentOS 7系だけどNetworkManagerは使ってないみたい。
  • tftpサーバの起動
    • /etc/xinetd.d/tftpを編集
    • disableをnoにしてservice xinetd restartする。
  • Fail2Banの解除
    • なんかGUIからできなくなった?ぽいのでコマンドで
      service fail2ban stop
      /var/log/fail2ban.logをけす
      service fail2ban start
  •  FreePBXのモジュール更新
    • 量が多すぎて一度にアップグレードができなかった。少しずつ更新する必要あり。
  • TCPのリッスン(Cisco IP Phoneのため)
    • Asterisk SIP設定で、chan_pjsipの設定を変えばいいが、Apply Configだけでは反映されず、osごと再起動が必要だった(Asteriskの再起動でも良かったかも)。
  • Outboundルール(外線発信)
    • 以前は「0X」だけでマッチした気がしますが、今回はそれだとルールにマッチせず11桁と10桁それぞれ登録しました。
  • ひかり電話にRegistできているのに、外線発信、着信両方FreePBXまでこない。
    • 正直ここが一番ハマりましたが、Asterisk SIP設定のGeneral SiP SettingsのNAT設定の外部アドレスを自分自身のIPアドレスにして、再起動したらうまくいきました。
      ※我が家はFreePBXからひかり電話HGWまでの間はNATはしていません。
      デフォルトでは、へんてこなIPアドレス(104.145.12.102)が1設定されており、実際のSIPパケット見ているとViaとかContactとかにそのIPがセットされていました。

以下、最低限のひかり電話発着信のためにいじったところ
(WebUIは日本語にしていたので項目が日本語のところがあります。)
※DID/CID制御とかはしていません。やりたい方はVoIP-Info.jp Wikiが大変参考になります。

  • ひかり電話HGW側
    • 内線設定
    • ダイジェスト認証なし
    • MACアドレスはうちの場合だとL3スイッチになる
      ※最初SVIのMACアドレスにしてたけど、よく考えたらNAT関わるわけじゃないから普通に出ていくところのインターフェースのMACアドレスを登録。
  • 接続
    •  トランク
      • General
        • トランク名:適当
        • アウトバウンドCID:自分の外線番号
        • 最大チャネル数:1(うちは1本の契約)
      • ダイヤル番号の操作ルール
        • 未設定
      • PJSIP設定
        • General
          • ユーザ名:0003(HGWの内線番号の頭に0を3つ)
          • Language Code:日本語
          • SIP Server:ひかり電話HGWIPアドレス
        • 高度な設定
          • DTMF Mode:バンド内
          • From Domain:ひかり電話HGWIPアドレス
          • From User:3(HGWの内線番号。0なし)
          • クライアントURI:sip:3@ひかり電話HGWIPアドレス
          • なんとなくパケットみてこんなリクエストになってれば行けるはず。

            REGISTER sip:ひかり電話HGWIPアドレス SIP/2.0
            From: <sip:3@ひかり電話HGWIPアドレス>;(略)
            To: <sip:3@ひかり電話HGWIPアドレス>

    • インバウンドルート
      • 単純に全部着信回すなら気にしなくていい。
      • 宛先をセット:自分で作った着信グループ
    • アウトバンドルート
      • ルートCID:意味ないらしいけど一応外線番号
      • 内線を上書き:はい
      • 一致したルートのトランクシーケンス:ひかり電話とのトランク
    • Dial Patterns
      • こんなかんじで。(これだと110とか119とか104とかは発信できませんのでご注意。うちは発信するつもりはないのであえて携帯と固定電話だけトランクに流すようにしています。)

あら、書いてみると意外と設定すくないですね。

あ、書いてないですが内線は普通に設定しています。
といっても番号とSecretくらしか設定してないですが・・・。

あと、我が家専用ですが、Cisco側がTCP/5061でSIPをしゃべるのでPJSIPがTCPで5061を待ち受けるようにしています。
※過去のFreePBXではchan_ipでしかTCPが設定できずいろいろ悩んでポート変えていたみたいです。

今日は家の掃除もしたし、なんとか新年が迎えられます。

皆様良いお年を。

ではでは。またの機会に。

 

我ながら自分のバカさ加減に腹が立つ・・・。

ども。こんばんは。

派手にオペミスしました。

というか、してたことに数時間後に気づきました。

移行したばかりのVMのデータストア吹き飛ばしました\(^o^)/

そして、旧NASからも削除済みで、旧NAS上はすでにThikで新しいLUNを作ってしましましたので、もう復元できない\(^o^)/

10数年分のログと思い出が(´;ω;`)

まぁいい。これが仕事じゃなくてよかったと思うことにしよう。
そし旧環境から気持ちを一新するいい機会を得たと、新しいことにチャレンジする機会を得たということにしよう(´;ω;`)

結局、何をやらかしたか。

  1. 旧NAS上にバックアップ用にiSCSIのLUNを作る(←問題なし)
  2. 新NAS上で旧NASをiSCSIでマウントする(←IPアドレスを間違ってしまい自分を自分でをマウントしていた)
    タイムマシンがあったら過去に戻ってぶん殴りたい。
  3. iSCSIのLUNをEXT4でフォーマット(←大惨事発生、気づかずorz)
  4. 新NASでLUNのエクスポートジョブ開始(←更に問題をややこしくした。自らとどめを・・・)
  5. なんか仮想マシンの調子が悪いぞ?(←気づき)
  6. VMからデータストアがみえないなー(←軽い気持ち)
  7. LUNエクスポートジョブキャンセル(←これはまあありかな)
  8. データストア消失に気づく(←まだ希望があった)
  9. パーティションの作り直し方とか調べて色々する(←無意味)
  10. 作業中のスクリーンショットとかを見直す(←あっ)

\(^o^)/

まぁいつかはやめようと思ってたわけだし、OSも全体的にサポート切れだし、メールはオンプレExchangeからO365へ、DNSはCloudflareへ、ブログもAWSにそれぞれ移行は終わってるので、実害は少ないかも。

直前まで使っていた仮想マシンと消失により想定される影響はこんなところかな。

  • AD(Windows Server 2008 R2)
    • Exchangeはもう役目を終えている(無駄にo365とのハイブリッドのままだけど・・・)
    • ADのSyncしなくなったからo365側もちょっと設定見直そう。
    • NPS(RADIUSサーバ)が死んだので一部機器の無線LANが死ぬ
      →もう.1Xもやめようかと思うけど、FreeRADIUSで再構築かな・・・。やっぱAD作り直すか・・・。(手持ちが2012しかないけど。。。)
    • MacBook AIRのアカウントに影響でるかも?
      →これ一番まずいかも・・・。今一番怖い。
  • 大昔から動いているLinux(CentOS 5)
    • 最悪Acronisのバックアップから戻せる(今朝フルバックアップが取れてる)けど、どうするかな・・・。
    • LAN内のDNSのマスターだった(セカンダリは物理サーバなのでセーフ)
    • そういえばADもこのDNSサーバを更新しにいく方式だっけか。。
    • DHCPサーバがいなくなった
      • 一部MACアドレス固定で払い出している機器がある。。。
        地道にFortiGateに移行するか。。。
    • SYSLOGを受けていた
    • SNMP-TRAPをメールに変換して飛ばしてた。
    • LAN内の機器のSMTP中継サーバだった。
    • AWSのサーバのSSHキーをここにしかおいてない気がしたけど一応バックアップとってた
  • PBX
    • 電話死亡
    • クソ苦労して作ったIP PhoneのConfigがとんだと思う。。
    • DHCPサーバでtftpサーバのIPとか渡してたっけか・・・。
  • 監視サーバ
    • ふるーいzabbix。2.xとかそんくらいかも
    • トラフィックとか見るのに便利だったなぁ

実質4台が常時稼働だったけど、それぞれ思い入れというか、もう存在が日常なサーバたちだったので、実のところショック大。。。

まぁ年末年始を利用して色々作り直そう。

来年は良いことあるといいな。

ではでは。またの機会に。

NASリプレースプロジェクト – 7 –

ども。こんばんは。

年末ですねー。

ようやくNASのリプレースが最後まで完了しました。

最後まで残っていたのは、VMwareのデータストアの中身です。

先日、ESXiを6.7にバージョンアップしたので、以下の内容は6.7U3Bでの内容となります。

vSphereのスタンダードライセンスを持ってればStorage vMotionでぐいっとデータストアを移動できるはずなのですが、無償版なので、今回は手動で頑張って移動します。

参考にさせていただいたサイト:
コマンドでシンプロビジョニングの仮想マシンを別のデータストアへ移行する

本家のドキュメント:
VMware 環境内での仮想マシンの移動またはコピー (1000936)

今回は、スナップショットが残っているVMはなかったので、上記参考サイトの方法で移動しました。シンプロビジョニングを維持しながら、不整合を起こさずきれいに移行できました。

作業時の構成としてはこんな感じ。
全機器GECを組んでいます。

NASそれぞれがiSCSIターゲットになっています。
ちなみに旧データストア(TS-859 Pro+側)はVMFS5で、新データストアはVMFS6です。

ESXi(ML110 G5) ━ Catalyst 3750X ┳ QNAP TS-859 Pro+
—ーーーーーーーーーーーーーーー┗QNAP TS-873

流れは以下の通り。

  • ESXiへのSSHの許可
  • 仮想マシンのスナップショットを統合(あれば)
  • 仮想マシンのシャットダウン
  • GUI(Web Client)上で仮想マシンを右クリックして登録解除
  • 新しい仮想マシンフォルダを新データストアに作成
    • # cd /vmfs/volumes/新データストア# mkdir 移行先仮想マシンのフォルダ
  • vmdkを移動
    • # vmkfstools -i /vmfs/volumes/旧データストア/仮想マシンフォルダ/xxx.vmdk -d thin /vmfs/volumes/新データストア/移行先仮想マシンのフォルダ/xxx.vmdk
      • ファイル名はちゃんと宛先も指定する必要がある。名前を変えるとvmxを修正しないといけないので原則名前は変えない。
      • 複数ドライブの場合hそれぞれコピーする。
      • うちの環境だと、GUI上の使用済み容量が85.5GBくらいで、20分程度でクローンできました。500Mbps〜600Mbpsくらい出てました。
        以下VMDKコピー中の様子。(旧NAS)

        (新NAS)
  • vmdk以外を移動
    • # find /vmfs/volumes/旧データストア/仮想マシンフォルダ/* -not -name “*.vmdk” -exec cp {} /vmfs/volumes/新データストア/移行先仮想マシンのフォルダ/ \;
  • データストアブラウザでコピーした仮想マシンを右クリックして登録する
  • 起動確認
    • 起動時に「質問」が出てきて、仮想マシンを移動したのかコピーしたのか聞かれますので、「移動」を回答します。
      ※MACアドレスが再生成されないので、OS上のNICの認識は変更なくいけるはず。
  • 自動起動設定のやりなおし
    • 登録解除しているので自動起動設定が消えています。

そんな感じで18台分、おおよそ800GBほど移動しました。
※結構使ってない仮想マシンもありますが・・・。

で、全部移行しおわって、GUI上で全仮想マシンのデータストアが新データストアのみ(列の選択で出せます。CDとかカウントしていると複数データストア表示される場合あり)になっていることを確認して旧データストア側のNASはESXi上のiSCSIターゲットから削除しました。

NAS側、ESXi側双方再起動してみたりして問題なさそうだったので完了としました。

で、NASリプレース前後の仮想マシンのパフォーマンスを比較してみました。

上が旧NAS環境、下が新NAS環境で動作させた場合の仮想マシン上のCrystalDiskMarkの結果です。

ランダムアクセスがかなり改善しました。
体験的にも早くなってる感じがありますね。
新NASはSSDキャッシュも効かせてるのでその効果もあると思います。

 

とりあえず旧NASは完全に役目を終えました。
ディスクがボロボロですが、なんとか壊れる前に全データ入れ替え終わってよかった。

旧NASは余計な設定を削除した後、現在新NASのiSCSI LUNのバックアップ先として使えないか検証中です。

【バックナンバー】

ではでは。またの機会に。

VMware vSphere Hypervisor (ESXi) 6.7U3b

ども。こんばんは。

久々にアップデートしました。

6.5からのアップデートで6.7.0 Update 3 (Build 15160138)にしました。

直前のバージョンアップ:vSphere 6.5/ReadyNAS 6.6.0/QNAP 4.2.2 build 20161214

「評価版および無償製品」だと、一個古いビルドしかなかったので以下の製品版ページから最新ビルドをダウンロードしました。

https://my.vmware.com/jp/group/vmware/info?slug=datacenter_cloud_infrastructure/vmware_vsphere/6_7

いい加減、CD(DVD)ブート以外のアップデート方法も試そうかと思いつつ、毎度おなじみDVDブートです。

お、ついに死の宣告が。。。

このサーバで使ってるXeon E3 1280が将来サポートされなくなるよ、とのこと。

今回は事前に互換性は確認してたのですが、警告が出るとは。。。

VMware Compatibility Guide

意外とサクッとあがりました。

まだ新NASに仮想マシンを全然移してないので年末年始に頑張って移動しないと・・・。

ではでは。またの機会に。

vSphere 6.5/ReadyNAS 6.6.0/QNAP 4.2.2 build 20161214

アップデート祭り開始!

あとで書く。

・サイバーマンデーでWDの4TB HDDを購入。REGZA Z20Xで使うのにハマる。うるさい。
・龍が如く6 おもろい
・人喰いの大鷲トリコ はじめました
・ACアダブタを詰めて挿せるタップ 良い感じ。でも穴が足りない。。

・vSphere 6.5はvmwareのサイト日本語版だと出てこないので言語を英語にする。
または、vSphereの評価版ページからダウンロードする。(ハッシュは一緒ぽい)

–追記

無事完了!

vSphere Clientは6.0のままで良い。
ブラウザでアクセスするとデフォでWeb Clientに飛ばされるようになった
ライセンスは6.0でインストールしたものがそのまま使える。

調べること:システム->スワップのデータストアがなしになっているけど大丈夫か。
→とりあえずSSDを指定(2016/12/31)
ESXi 5.1のドキュメントだけどこれかな。
  https://pubs.vmware.com/vsphere-51/index.jsp?topic=%2Fcom.vmware.vsphere.resmgmt.doc%2FGUID-56608D3C-3C93-4D03-B565-172C08478EA3.html

vSphere Web Client1に対すて誤解をしていた

ども。こんばんは。

最近とっても働き詰めでブログ書く時間があんまり取れてませんでした。
9月末から毎週1日ないし2日の休日出勤が続いてたりします。。。
先週木曜(終日)、昨日今日も・・・。

まぁ仕事があるのはなかなか良いことだ!ということで本題。

vSphereの5.5くらいから導入されているWebクライアントですが、誤解していました。

vCenterが無いとダメだと勝手に思い込んでいましたorz

ESXi 6.0 Update 2からホスト単体でも使えるようになったようです。

【参考】
ESXi6.0 Update 2 からESXiホスト単体のWeb Client が提供されています。

ここをこう!

webclient-01

おお!?仕事でしか見たこと無い画面が!

webclient-02

いけんじゃん!

webclient-03

一応コンソールも使えますねー。

これでmacOSでもVM触れるな!

ただ、コンソールの反応はそんなには調子は良くないかも。

先入観はいけませんねー。と改めて思いました。

ではでは。またの機会に。

 

【ESXi】仮想マシンのスワップ多発はhttpdのせいっぽい

ども。

【ESXi】仮想マシンで謎のスワップイン/アウト多発orz」について調べていましたが、どうやらhttpdが原因っぽいorz

たまたまfeedlyで自分のRSSを登録していたら、ギュイーンとhttpdが立ち上がってきてheavy swapな状況に。

で、うちのhttpdって、そういえば昔プロセス数の起動とか変に調整した気が・・・。

今のprefork周り

<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 256
ServerLimit 256
MaxClients 256
MaxRequestsPerChild 4000
</IfModule>

うーん。MaxSpareServersが結構多めですね。

とりあえず20に戻してみる。
やっぱりそれでもしんどいな。

下記の参考サイトで計算してみると、うちの環境だと20プロセスくらいが限界かな。

このくらいで様子見ですね。

<IfModule prefork.c>
StartServers 8
MinSpareServers 5
MaxSpareServers 20
ServerLimit 20
MaxClients 20
MaxRequestsPerChild 4000
</IfModule>

お、多量にアクセスかましてもswapまみれにならないね。
やっぱりサーバのスペックに対してhttpdプロセスを上げすぎだったのかな。

このへんのパフォーマンスチューニングは難しいですね。
あと、なんで今さらこんな問題が発生したのか?ESXiのSSD追加に関係があるのか!?

は、わかりません。。。もう何年もこの設定だったんだけどな。。。

参考:サーバが Swap を使いきってハングアップしたので、Apache のチューニングを実施しました

ではでは。またの機会に。

【ESXi】仮想マシンで謎のスワップイン/アウト多発orz

ども。こんにちは。

昨日ESXiのスワップをSSDに変えたという記事を書きました。

ウッキウキで寝てたのですが、朝起きたら偉いことに。

再び仮想マシンのLinuxのロードアベレージが50近くorz

ただし、不思議なのは1台だけがその現象に&猛烈にスワップイン、スワップアウトを繰り返している状況。
httpd/smtpd程度の働きなのでそもそもスワップするほどメモリは食わないはずなのに食いきっている。。。

swap

vmstatの状況からもsi/so多発が伺えます。。。これはひどい

vmstat

さらに気になるのが、(おそらく)スワップにともなってNAS側をガリガリやっていると思われること。
NASのトラフィック推移を見ると、いい感じでsi/soのタイミングで山ができている。。。
※11頃仮想マシンの再起動をしたので落ち着いています。

traffic

あれれー。スワップはSSDにおいているはずなのに。なんでそっちのIOを食うんだ・・・。
再起動後調子はいいですが、うーん。
また何か起きそうですが様子見かなー。

もっとVMのメモリ管理とかの仕組みを勉強しないとですね。

あと、訂正です。

私「ホストキャッシュ」の意味を完全に勘違いしていました。

ホストキャッシュは、仮想マシンのディスクアクセスを一旦SSDでキャッシュすることでストレージに負担をかけないとかレスポンス良くするとかだと思ってました。
→それはvSphere Flash Read Cache (vFRC)

じゃぁホストキャッシュってなによ?&仮想マシンスワップファイルの場所を変えるのとホストキャッシュの違いは何よ?と思ってしまい、いろいろ検索してみました。

ホストキャッシュの動作は図4-12のとおりです。ESXiホストがスワップアウトを行う際、ホストキャッシュに空き容量がある場合はホストキャッシュに、空き容量が不十分な場合はディスク上のVSWPスワップファイルに書き込みます。

(VMware徹底入門 第3版/151ページから引用させていただきました。リンクはこちら)

うーん。まぁ要するにホストキャッシュが優先?
これどのくらい使われているか気になりますね。

今日もまた格闘だな。。。

ではでは。またの機会に。

【ESXi】スワップをSSDに移すと脅威の効果が得られた話

ども。こんばんは。

VMware ESXiネタです。

まずはこちらを・・・

13119070_1730801277163017_4138580750118359504_n

脅威のロードアベレージを記録しましたorz
これ、VMware ESXi上に新しく作ろうとしているWindows Server 2012 R2をインストールしている時の、他の仮想マシンの様子です。

全体的にフリーズ気味になりインストールも終わらないという悪循環になりました。

2時間たってもこの状態!こりゃもう駄目だ。。。

2016-05-01_163246

いろいろ調べた結果、仮想マシンのスワップ用のデータストアのレスポンスが非常に悪いことに気づきました。

以下その時の様子。
なんと書き込み待ちが1000ミリ秒近くになっていることも。。。
こんな人間並みのレスポンスでいいのか!
※基本我が家のESXiは全データをQNAP上においています。(iSCSIでマウント)
構築当時、スワップに関してはローカルのほうがいいと思ってローカルのHDDにしていたみたいですね。。

2016-05-01_163203

さて、もう原因これでしょ。ということでSSD買いました。
※18時半からヨドバシに向かってダッシュするっていう、こういう時の自分の行動力は褒めてあげたい。

買ってきたのはCrucialの「CT250MX200SSD1」。
まぁなんでも良かったんですが、240GB以上のそこそこのスピードで1万円以下。で決めました。
あと、うちのESXiはML110 G7で稼働しています。ディスクがサーバもどきな専用な感じなので、
3.5インチ変換用のアダプタも買いました。裸族のインナー(CRIN2535)です。
これにSSDを入れてSATAコネクタの位置を3.5インチHDDと合わせます。

IMAG0158 IMAG0159

裸族のインナーにおさめて裸族付属のネジで止めてHPの専用マウンター?に入れます。
悲しいかなノンホットプラグなので電源を切って装着。

IMAG0160 IMAG0161 IMAG0162

心配していたSATAの設定もちゃんとAHCIになっている!
#導入時いろいろ悩んだんだろうなぁ。昔からここは痛い目に会いやすいからなぁ。。。

IMAG0163

ここまでくれば後はもうちょっと。
認識させてフォーマットして仮想マシンスワップの場所を変更!
※当然ながら全仮想マシンシャットダウンしている必要あり。

2016-05-01_213743  2016-05-01_213902

キタ━━━━(゚∀゚)━━━━!!

早速同じ状況下で同じ作業をしてみると・・・

はええええええええええ!!!!

2時間待っても終わる気配のなかったWindows Server 2012 R2のインストールが10分で終わった!!!
しかも周りのサーバに被害なし!
なにこれすげー!驚異的なパフォーマンス改善ってこういうことを言うのか。。。

 

ほぼ2ミリ秒以下で微動だにせず。

2016-05-01_221118

これがSSDの真価なのか・・・。

【2016/05/02追記】ホストキャッシュとvFRCの機能を勘違いしていました。
vFRCはストレージへのアクセスのキャッシュとしてSSDを使う技術で、そもそもvSphere Web Clinetからじゃないと設定もできないらしい。

ホストキャッシュは、単純にESXi本体のメモリもスワップ先としてSSDを指定するようですね。
ってことは仮想マシンスワップファイルの場所をSSDにするのとはわけが違う???
※ここからちょっと注釈。
これで随分改善したのですが、そういえば「ホストキャッシュ」っていう機能もあったなと思い、128GB分を干すキャッシュにしてみました。
が、体感そんなに変わらず。むしろ上記Windows Serverのインストールはちょっと遅くなった感じもします。
まぁ、スワップだけだともったいないし、ホストキャッシュ有効にしても書き込み遅延はなさそうなのでこのまま様子見しようかと思います。

以下、データストアがあるNASへのデータ転送量をホストキャッシュなし(左の山)、あり(右の山)で比べてみました。
うーん。まぁその時々のパフォーマンスもあるので一概には言えませんが・・・。
ホストキャッシュをありにすると、なんとなく、一気にアクセスはしなくなる?のか?

zabbix

VCP持っているようなスペシャリストの方ぜひご意見くださいm(._. m)

ふう。久々に燃えましたね。
やっぱりこういうの楽しいなあ。

最後におまけ
Windows Server 2012 R2を評価版から製品版に上げる方法
※私はTechNetのライセンスキーを持っていますが、残念ながらTechNetからダウンロードしていたISOが壊れていた模様です。
2012R2がTechNetのサービス終了前に手に入ったので良かったですが、2012 R2で自宅のWindowsは最後ですね。。。寂しいなあ。

Windows Server 2012 の評価版から完全製品版への乗り換え
https://technet.microsoft.com/ja-jp/library/jj574204.aspx?f=255&MSPPError=-2147217396

こんな感じですね。

DISM /online /Set-Edition:ServerDatacenter /ProductKey:xxxxx-xxxxx-xxxxx-xxxxx-xxxxx /AcceptEula

無事うまくいきました。
※たまに失敗するそうです。その時はプロダクトキーの前に「/AcceptEula」を持ってくるといいそうです。

Windows UpdateしてExchange作らなきゃ!
楽しいGWが続きそうです。

ではでは。またの機会に。