Category Archives: tech

openldap サーバの openssh 連携

前回、レプリケーションさせたopenldapサーバを2台のサーバで起動させた。マルチマスター構成なので、どちらかさえ生きていればよいという冗長化がなされた状態だ。あとはクライアント側の設定をすればldapによる認証を利用できるようになる。何はともあれ、sshくらいはldap認証に切り替えないと恩恵が薄いので、まずはlocalでのsu認証とssh認証をldapに切り替えてみる。ssh用の公開鍵情報を登録できるように以下のような設定を追加する。どちらかのldapサーバで実行する前提。... 続きを読む

CentOS 7.4 インストール

遂にCentOS 7.4がリリースされました。待ちに待ってたという訳でもないんだけど、チューナーやQSV関連のOS Specificな課題を解決して、いつでもOSを入れ替えられるようになった嬉しさと、ちょうどOS領域であるSSD128GBのsdaが8割を超えてしまい、256GBのSSDと換装しようとしていた時期でもあったので、この期に早速CentOS7.4をインストールしてみた。ただし、kernelについては現行のCentOS7.3でも使用しているkernel4.4を使い続けることになる。... 続きを読む

openldap サーバの冗長化 @ CentOS 7.3

以前から幾つかのコンポーネントで認証を統一したいなあという希望はあった。まっさきに思い浮かぶのは当然LDAPの導入なんだけど、若かりし頃にすべてのストレージエンジンをmysqlに任せたいなんて思う頃があって、openldap+mysql環境を作ってしまってどハマリした経験がある。それ以来、構造が複雑化しがちなLDAPの導入を避けてきたんだけど、最近は扱うミドルウェア数も増えてきて、認証の統一だけでなく、単純にノードを超えたアカウント管理が欲しくなってきた。... 続きを読む

GlusterFS snapshot 機能の検証

GlusterFSで管理しているファイル群は、撮影した写真や動画とチューナーによる録画ファイルが中心。録画ファイルはTSファイルとMP4ファイルを録画時に同時生成するので、見終わった録画のTSファイルは手動で削除するみたいな運用を何となく続けていた。しかし、遂にミスオペをしてしまい、誤ってTSファイルだけでなくMP4ファイルまで消してしまった。Linuxのターミナル上で作業していたので、ゴミ箱に移るということもなく、完全に消えてしまったのだ。... 続きを読む

CentOS7 + kibana + Elasticsearch 構築

先日準備したElasticsearchの上にkibanaを構築していく。kibanaで手軽にwordpressのアクセス状況を解析したい。手癖の悪いクローラーがDoS攻撃のようになって、レスポンスタイムが著しく遅くなったことがあった。一見するとサーバ側には何も問題が起きていないため、逆に原因を特定しづらい。こういうときに、HTTPステータス数やIPアドレスごとのレスポンスタイムを集計したグラフがあったりすると、すぐに問題を判別できる。無名のクローラーなんて全部拒否っちゃえばいいんだけどね。... 続きを読む

CentOS7 + Elasticsearch クラスター 構築

今更だけど、elasticsearchを導入する。モチベーションは、とりあえずダッシュボードとしてkibanaを使っていきたいから。手癖の悪いクローラーが来ると、wordpressのレスポンスがスローダウンするんだけど、いちいちaccess.log見て調べるのも億劫なので、普段から簡単に見れるようにしておきたい。おいおいは全文索引の検索エンジンとしても使っていくつもり。検索エンジンというカテゴリで考えれば、もう幾つか選択肢はあるんだけど、esはクラスターとしての運用が考慮されているのが素敵。... 続きを読む

GlusterFS v3.9 の Split-Brain 障害対応

先日、わずかサーバ2台だけの我が家でSplit-Brainを経験した。いくつかSplit-Brainを引き起こすようなマルチマスターのクラスターソフトがあるのだが、見事にSplit-Brainを引き起こしたのがGlusterFSだった。以前にもGlusterFSのSplit-Brainは取り扱ったことがあるが、今回はバージョンアップ後の初めてのSplit-Brainとなる。いつも通りに対応しようと以下のコマンドでsplit-brainしているファイルやディレクトリを確認する。... 続きを読む

ネットワーク起因で真の Split-Brain 障害発生

今までも何度か扱ってきたSplit-Brain問題。うちの環境で起き得るのは、マルチマスターになっているGlusterFSやMariaDB、ElasticSearchなど。これまで経験したSplit-Brainは、そうは言いながらも片側のみ更新されて、もう一方が更新されないというもの。正しく更新されている方にキャッチアップさせればいいだけなので、それほど難易度は高くない。あるいはSplit-Brain対策で書き込み停止してしまったサービスをどうするか、というものもあったかもしれない。真の意味でのSplit-Brainを経験することはなかった。... 続きを読む

GlusterFS バージョンアップ 失敗!

自分の環境においては、すっかり中心的なインフラとなったGlusterFS。唯一の悩みがバージョンアップ運用をどうするかだった。というのも以前マイナーバージョンを上げてみた際に、著しくI/O性能が劣化してしまって、バージョンを切り戻した経緯がある。加えて、自分の環境のkickstartやchefなどの構成管理システムがGlusterFSに依存してしまっており、GlusterFSに問題が起きるとOS再構築すらままならない。この状態に陥ると手詰まりになってしまうため、GlusterFSのバージョンアップは悩ましかった。... 続きを読む

ヘリウム充填HDD Western Digital WD80EFZX 8TB 購入

自宅環境にGlusterFSやらHDFSやらの分散ファイルシステムがあるため、なるべく大きなストレージを確保しておきたい。長らく8本の3TBディスクでやりくりしてきたが、録画サーバを構築してからデータ増量に対して総容量が心もとない。現時点で最大の容量となる8TBディスクに入れ替えていくつもりで、ST8000AS0002を何本か購入。じわじわと増やして8TBディスクが4本、3TBディスクが4本というストレージ構成になった。これをGlusterFSのミラーで使っているので総容量は24TBという計算だ。... 続きを読む

zabbix ( nginx + php-fpm + MariaDB ) 導入

自宅とIDCFクラウド環境のopenvpnによるLAN to LAN接続が成功したので、ようやく監視環境を構築する。nagiosを割と使い込んでいたんだけど、サービス監視とリソースウォッチが統合されているzabbixを使ってみたかった。データもRDBに貯められるので冗長構成を作り易い。いまいちだったら別のものを作るという考えで、とりあえず使い始めてみる。インストールはもはや何の問題にもならない。zabbixリポジトリを設定してyum installするだけ。依存関係を解決する形でphpやhttpdもインストールされる。DBサーバには別サーバdb1のMariaDBを使うので構築済みの前提で進める。... 続きを読む

MariaDB Galera Cluster の Split-Brain 問題

MySQLのマスター・スレーブ構成からMariaDBのマルチマスター構成に移行してから、DB側の運用は非常に楽になった。wordpressに関して言えばWeb+DBのセットが2つあるので、その単位でラウンドロビンしている限り、まったく問題なく複数台構成を取れる(Webの接続先DBがlocalhostという状態)。しかし、DBのみを分離してreadもwriteも関係なくラウンドロビンさせると、どうしてもdead lockが頻発してしまって不都合が起きやすい。... 続きを読む

IDCFクラウド openvpn による LAN to LAN 接続

IDCFクラウドで不意の障害に見舞われることが増え始めたので、もう少しまともな運用を考える。たまたま自分でアクセスしたときに障害に気付くような状況をまずは改善する。IDCFクラウドのリソースはケチケチで運用しているので、自宅のサーバからクラウド側のサーバを監視するのが理想的。できればウェブ系の監視だけでなく、サーバごとのリソースウォッチも行いたいので、自宅から個々のサーバ、あるいはそのサーバ内のコンテナにアクセスできるように設定したい。そこでVPNの導入を検討してみる。... 続きを読む

IDCFクラウド wordpress 障害対応

今までVPSやGMOクラウド時代に、wordpress運用で障害らしい障害は起こしたことなかった。サーバ運用が硬直的だったので大きな変更を行えなかったというのも理由の1つではあるが。IDCFクラウドへの移行後は、vmwareノード上にlxcコンテナを作成して、そのコンテナ上でwordpressを運用している。更にwordpressのphp部分はGlusterFSで、データ部分はMariaDBで2台を同期している。これだけ構成を複雑化させてしまったせいかもしれないが、遂にwebサーバにて予期しない障害が発生した。... 続きを読む

Seagate Archive Disk 8TB ST8000AS0002 レビュー

ここ数年、スケールアウトで逃げ続けたディスク容量問題。中心的に使ってきた3TBと昨今のSATAディスク最大容量との乖離も大きくなってきたので、いい加減8TBにスケールアップを行った。SeagateのアーカイブディスクST8000AS0002という製品。大きなファイル用途とのことで、OS領域などには向かないらしい。このディスクを迎えるに当たって、予めGlusterFS上にある細かいファイルはアーカイブして固めておいたので、普段使いで違和感を覚えたことはない。特にストレスを感じることもなく、GlusterFSの1ブリックとして立派に働いてくれている。... 続きを読む

IDCFクラウド wordpress 複数台構成 構築

wordpressの運用は既に8年近くに渡っているが、まともな複数台運用が実現できていなかった。大したコンテンツではないが、それでもクラウド費用くらいは稼いでくれるので、出来る限りダウンタイムの少ない運用を行いたい。その結果としてwordpressサーバは大胆な停止が行えなくなり、構造変更がまともに出来ず、古臭い構成に成り下がってしまう。クラウドに移行した一番のモチベーションは、複数台構成にすることで頻繁に更新出来る環境を維持したかったからだ。... 続きを読む

DBサーバ 比較 MySQL vs MariaDB 移行編

昔ながらのmaster/slaveでMySQLを運用してきたが、最近は大分考えが変わってきた。少なくとも自分の趣味環境においてはパフォーマンスより運用の利便性を優先しないと作業の生産性が改善しない。MySQLにおいてmaster/slave構成を取ってきたのは、趣味レベルにおいてはわずかでしかない性能を気にしての事。GMOクラウドからIDCFクラウドに引っ越して内部通信品質も大きく改善したので、今回はwordpressのDBをマルチマスターとなるMariaDBのGalera Clusterに移行してみる。... 続きを読む

構成管理ツール比較 chef zero vs ansible

もともとchef serverのよる構成管理を行っていたが、よりシンプルな仕組みにしたかったのでansibleに移行した。ansibleは処理も軽く、コードも構成もシンプルで気に入っていたのだが、難しい処理を扱い始めてくると表現力に物足りなさを感じてしまった。具体的には、素のpythonを書けないことのストレスと、pythonでの構造体操作がperlやrubyに比べるとやりづらいという点。その手間も相まって、Jinja2でのtemplate定義に悩むことが多かった。... 続きを読む

IDCFクラウド 仮想ブリッジ ネットワーク問題

今までも何度か触れてきた、IDCFクラウド環境のネットワーク問題。CentOS7インスタンスにLXCコンテナを作成して、そのコンテナを仮想ブリッジ経由でネットワークに繋げている。しかし、この仮想ブリッジ内のLXCコンテナがネットワーク的に不安定。例えばリモートのs3fsをマウントしようとするとコンテナが応答不能になってしまったり、別ノードのLXCコンテナとkeepalivedによるvrrp通信をさせようとすると応答不能になってしまったり。また、コンテナ再起動すると、しばらく外部と通信出来なくなるので、コンテナで複雑なことをやるのは二の足を踏んでいた。... 続きを読む

IDCFクラウド DNS冗長化 keepalived編

中外共用のbindをどのように冗長化させるか。前回、nginxのudp proxyを使ってみたが、期待していたproxy_protocolの設定がudpだと働かずに断念。別の方法を考える。bindの前段でロードバランスさせてしまうと、どうしても接続元がロードバランスするサーバになってしまうので、接続元によるzoneの切り替えが出来なくなってしまう。やはりbindそのものをネット上にむき出しにするのが最もシンプル。その状態でどのように冗長化を実現するのか。もうVIPによるフェールオーバくらいしかないか。うん?... 続きを読む