DigiLoog

PC関係の事なら何でもいけるそんな処

Archive for the ‘Linux’ Category

LinuxでASPMバグを踏んでログが残らないシステムダウン

2017年04月08日(土) - 21:59 | カテゴリ: Linux

自鯖環境はLinuxホスト2台の冗長化構成(非ライブマイグレーション)で組んでいるのだが、
ホスト2号機の方で意図しないシステムダウンが発生する事があり原因究明を頑張っていた。
古いKernelを使うと何故か事象が発生しない事から、とりあえず古い物を使い続けていたのだが、
先日公開されたCentOS6.9の事もあり、流石にKernel上げないのも限界を感じてきたので、
strace使ったりして本気で原因究明をやってみた。

結果、恐らくこれだろうという所まで切り分けが出来たので、
ワークアラウンドを実施した所、今の所は事象が発生していない事から備忘録を残しておく事に。

細かい設定は上のwikiに書いたが、少しだけ解説。
と思ったが、もっと詳しい事がコチラにかいてあった。
要するにPCI-Eの省電力機能を使うと、Kernelのバグに当り勝手にシステムハングアップしてしまう。
最近のマザーボードだと、通電時に自動的に電源ONする物があり、
「ハングアップ > 電源OFFと判断 > 自動再起動 > エンドレスループ」
になって、超絶不安定なシステムになってしまう (´・ω:;.:…

色々な組み合わせがあると思うが、自鯖環境で発生したのは下記のような組み合わせの場合だった。

  • マザーボードはPCI-E2.0対応
  • 差しているPCI-EボードはPCI-E1.1対応
  • 仮想化でゲストにはPCI-E2.0が見えている

この時にゲスト側からASPMの省電力化が実行されると、
サーバホストがゲストOS全体も巻込みながらシステムダウンした (´;ω;`)

………

回避するのは簡単で、ホストOSでPCI-E ASPMを無効化すれば良い。
『ASPMを無効化して大丈夫なのか』と言われそうだが、サーバで省電力化を優先し、
PCI-Eが勝手にOFFになる方が問題(NICボード停止など)なので、ASPMを無効化する事をオススメする。

無効化するには、GRUBのkernelパラメータに "pcie_aspm=off" を追記してOSを再起動する。
GRUB2の場合はwikiに書いてあるのでそちらを参照の程…



自宅WEB鯖をHAProxyで完全二重化してみた

2017年03月04日(土) - 19:19 | カテゴリ: Linux

2年前から冗長化構想はあったのだが、自分の知識が足りずActive/Standbyかつ、
何かっあたら手動で切り替えを行っていたWeb自鯖…
だが、昨年に自鯖基盤を刷新した事で色々と準備が整ったので、
念願のActive/ActiveのWebサーバ構成に変更してみた。


今までのDigiLoog鯖ステータスでは、サーバ稼働時間しか表示してなかったのだが、
今回の構成変更に伴い、Primary/Secondaryを表示するようにしてみた。



DigiLoogのデータ領域をNFSに切り出してみた

2017年02月24日(金) - 20:17 | カテゴリ: Linux

今年やりたい事の一つとして挙げていた、自鯖のSSL対応をする為に
自鯖構成を大きく変更し続けている昨今。
その中の一つとして、拠点内・外冗長化対応も(実は)含んでいた為、
データ領域をどうやって冗長化するかが課題になっていた。

GlusterFSのレプリカ構成や、lsync+rsyncによるdaemon同期、
仮想環境レベルのデータ共有マウントなど色々な方法が候補になり、
テストをした結果を踏まえて、今回はNFS共有マウントという構成を採用する事とした。

最後まで候補に残っていたGlusterFS、NFSについてはベンチも取ったので、
次回のブログ更新時にちゃんと記事を起こす予定。
ちなみに、この記事は出先から書いているので、そもそもデータが手元に無かったり (´;ω;`)

大きな変化としては、ローカル読み込みが10MByte/s出ていたのが、
NFSに切り替えた事で、3MByte/sまで落ちた事。
さすがに、ローカルといえどもギガビット回線がローカルマウントに勝つ事は出来なかった (´・ω・`)
ただ、今のところはユーザが実感できるレベルで遅延は起きていない模様。
細かいベンチはサーバ冗長化・リバプロ負荷分散の最終構成まで組んでから実施してみようと思う。



  • 応援中

    はじめるセカイの理想論 -goodbye world index-