Tag Archives: Linux

GlusterFS の Split-Brain 障害対応

導入以来、想像以上にタフに動いてくれているglusterfs。当初はcephfsとの選択を迷う時期もあったが、現時点ではglustefsが自分の環境にはフィットしている。2ノードの3TBディスク8本の構成なので、分散FSとしての性能はまったく期待していない。8本の中でRAID10的なdistributed-replicateを構成しており、その冗長性とネットワーク経由でのファイルシステムの共有に大きな価値を見出している。ファイルシステムレベルで冗長性を確保できたことによって、多くのミドルウェアの冗長性を気にする必要がなくなり、構成管理が非常にシンプルにすることができた。あくまで個人管理の趣味システムを前提とした話だが。... 続きを読む

IDCFクラウド DNS冗長化 LVS編

IDCFクラウド上のnameサーバは中外兼用のbind。外向きには自分所有のドメインのゾーンを返して、中向きにはローカルゾーンも含めて答える。ダウンタイムは小さくしたいので2台で冗長化させておきたい。IDCFクラウドの仮想ルータはUDPのロードバランスが出来ないので自前で行う必要がある。枯れたやり方としてはLVSを使うことだろう。LVSで2台のbindをロードバランスしてみたところ、外からの問い合わせも中向けの処理が対応するようになってしまった。bindのmatch-clientsで処理分けしていたのだが、外からのものも含めて全てのリクエストソースがLVSサーバになってしまったからである。... 続きを読む

録画サーバ構築 Skylake+CentOS 断念編

後日、異なる事実が発覚したのでこちらを参照下さい(2016年10月追記)

結論から言うとSkylake機sh170r8でのCentOS録画サーバ運用は断念しました。あくまでSkylake+CentOS+PX-Q3PEを諦めただけで、Skylake+Win10+PX-Q3PEやSkylake+CentOS自体の運用は問題ない。Skylake機から録画サーバ機能は外したけど、GlusterFSを中心としたファイルサーバとして今後も利用していく予定。前回、録画サーバを作りあげてから一見まともに動いていそうだったので、実はPX-Q3PEを買い増した。念願の2台体制。作業効率上がった事も嬉しいんだけど、両ボードの差異を検証できるようになった事が大きい。そこで気付いたのが2つのボードでBSの受信感度に大きな違いがあることだった。... 続きを読む

IDCFクラウド cloudstack-api で LVS NAT

IDCFクラウドに少しずつ環境を構築していっている。何よりもまずDNS環境を既存環境から移行させてしまいたい。クラウド上の2台のサーバにbindで立てたDNSをインターネット上からも問い合わせ出来るようにする。仮想ルータでのラウンドロビンはUDPに対応していないため設定できない。2台間のロードバランスはLVSに任せる。そのLVSのVIPにNATする形でインターネットからのアクセスを設定する。しかし、仮想ルータによるNATは仮想サーバのNICにアサインされているIPアドレスにしか繋げることが出来ない。なので、IDCFクラウドのAPIを利用してVIPに対するNATを設定する必要がある。... 続きを読む

録画サーバ構築 Skylake+CentOS 検証編

後日、問題が発覚したのでこちらを参照下さい(2016年8月追記)

Skylake機でLinuxを動かすにはkernel4系を使う必要がある。PX-Q3PEを利用するには必然的にKVMにデバイスパススルーするくらいの方法しかない。kernel4系でもデバイスパススルーが問題なく使えるかどうかを試してみる。前回、CentOS7.2をベースにkernel4.6を導入して無事Skylake機を起動させる事ができた。ただし、2回ほど不可解なネットワーク障害(OSからNICが見えなくなる)があった。いずれも再起動ですぐに直ったが詳細は未調査。ちょうどこの頃にkernel4.7がリリースされたので、試しにインストールしてみたが、残念ながら起動中にエラってしまった。このリリースはネットワーク周りの改善もあるらしいので、また時間のあるときに挑戦してみたい。... 続きを読む

録画サーバ構築 Skylake+CentOS 構築編

前回sh170r8でPX-Q3PEを使う筐体を組み上げた。今回はこのskylake機にCentOS7をインストールする。通常のCentOS7はskylakeに対応していないので、Kernel4系に変更したCentOSを用意する。kickstartでのCentOS7インストールをやるだけやってみたが、anacondaの起動途中でハングってしまった。kernel4系の動作検証機としてZotac AD11を使用する。このサーバには既にCentOS7.2がインストール済み。このkernelをまずは4系に変更してみる。kernel4系の最新は4.6。手順は以下。... 続きを読む

録画サーバ構築 Skylake+CentOS 準備編

最近自宅環境でもいろいろやり過ぎてサーバ環境がごちゃごちゃしてきた。これだけサーバやらディスクアレイやら動かしているとさすがに電気代も気になるし、何よりもUPSの電源ポートが足らなくなる。幾つかの機能を統合して筐体を減らしたいと思い始めていた。そこで目に止まったのがshuttleの新型機sh170r8。現行のsh67h3と同様のPCI Expressスロットが付いており、GD750-2GERTSPとPX-Q3PEは併用可能。一方、スマートカードリーダーPF-001CRは使えなくなるので、USB接続のスマートカードリーダーを用意する必要がある。カードリーダーを外に繋ぐのが美観的にイマイチなので、マザーボード上の内部USBピンを変換して接続し、カードリーダーも筐体内に入れるつもり。... 続きを読む

IDCFクラウド LVS で負荷分散

IDCFクラウド上でLVSを使う分には、参考になる記事もあってそれほど難しくなさそうに思った。ただ、自分の環境の場合、仮想サーバ内でブリッジ接続したLXCコンテナ上でLVSを利用、あるいは仮想サーバ上でLVSを利用して、LXCコンテナに振り分けるといった構成を取りたい。まずはLXCコンテナ上でのLVS運用を検証してみた。コンテナ上では、kernelモジュールやパラメータを変更することはできない。ホストOSのそれを継承するだけなので、とりあえずホストOS側にipvsadmをインストールする。振り分けに必要なkernelパラメータ2つも有効化する。CentOS7だとnet.ipv4.ip_forwardは最初から有効。net.ipv4.vs.conntrackはipvsadmを動かさないと設定できなかったので、一旦ipvsadmを起動してから有効化した。... 続きを読む

録画サーバ構築 CentOS+PX-Q3PE 障害編

前回、無事epgrecでの録画環境を完成させた訳だが、ここまでの道のりにおいてPX-Q3PEの運用に悩んだ事がなかった訳ではない。それは自分の環境が仮想サーバであることに起因する点もあるが、やはりPX-Q3PEは非常にセンシティブな製品であるからとも言わざるえない。仮想サーバで録画環境を構築した理由は、サーバを幾つも用意したくないからというのものあるが、物理構成の制約を軽減できるという点も大きい。PX-Q3PEのドライバがCentOS6にバージョンロックされている中でもPC環境の進化は止まらない。いつかはCentOS6では動作しない環境も出てくる。それでも仮想サーバであれば、そのホストOS上で永久にCentOS6を動かす事ができる。バージョンロックされいるからこそ仮想サーバで動かしておきたい。... 続きを読む

録画サーバ構築 epgrec UNA+PX-Q3PE 構築編

長々と続けてきた録画サーバ構築。今回、epgrec UNAの環境を作ることでサーバ側の基本的な準備が完成する。とはいえ、クライアントの視聴環境考えたり、CMスキップ考えたり、まだまだ環境の構築は続きそうだけど。epgrec構築の基礎的な部分は多くの人がまとめてくれたので自分はそこを割愛する。PX-Q3PEでepgrecを動かす上での注意点になるべく稿を割く。まず最初の問題がrecpt1にepgrec UNA用のパッチを当てること。これにはrecpt1のソースが必要で、foltiaにあるバイナリを流用という訳にはいかない。ぐぐった結果、github上にpx_drvリポジトリというPX-Q3PE用のrecpt1ソースが存在することを知る。... 続きを読む

IDCFクラウド LVS+ansible で kickstart 環境構築

IDCFクラウド上での環境構築を着々と進めている。構成管理ツールをansibleに切り替えてから、初めてのクラウド環境対応なので、わりと細かいところから修正している。そもそも自宅環境とクラウド環境をVPNで繋いで、仮想的なプライベート・ネットワークを作るかどうかも悩んだ。現時点ではクラウドの独立性を優先して、それぞれ個別に環境を作っている。chefではリッチなサーバ環境を安価なクラウドで用意できなかったので、この辺りはansibleの軽量さに感謝している。ansibleの処理そのものを別管理にするのはコストが大きいので、同じgitで管理してhostsファイルを自宅環境とクラウド環境で違える形を取った。処理ロジックの中では、ansible_domainを使って処理分岐や変数の変更を行っている。例えば、こんな感じ。... 続きを読む

録画サーバ構築 recpt1+PX-Q3PE 検証編

いよいよ録画サーバの構築を進める。Linuxで録画機能を動かすにはPX-Q3PEを認識させて、スマートカードリーダーでB-CASカードを読み込み、録画用のrecpt1というコマンドで録画を行う。もし、録画に失敗した場合は障害ポイントがそこかしこに存在するために切り分けが非常に難しい。そこでまずはwin10で動作確認を行い、次にfoltiaでも動作確認を行い、環境面での問題はないはずという状態を作り上げてから自作の録画サーバに取り組む。既に実績のあるfoltiaのPX-Q3PEドライバ(kernel module)とrecpt1があれば、自分で作ったCentOS6でも録画機能が動作するはずだ。... 続きを読む

パブリック クラウド 比較 GMO vs IDCF 機能編

最初のクラウドとして、それなりに要件を満たしていたGMOクラウドALTUSを9ヶ月ほど使ってきた。しかし、その間にサーバ運用の価値観が大きく変わり、別のクラウドも触ってみたくなってきた。価値観の変化というのはマルチマスターの便利さ。スケールアウトによって更新処理が犠牲になるマルチマスターを避けてきたが、glusterfsの利用による構成管理の単純化に大きく心変わりした。同様にDBもmariadbのマルチマスターに変更して、wordpressのスケールアウトを可能にしたい。性能面でのスケールアウトはまるで必要ないが、運用面で複数台運用ができるとローテーションによる再構築やメンテがし易くなるので実用的。... 続きを読む

録画サーバ構築 foltia+PX-Q3PE 仮想サーバ編

長い事ハードウェア・エンコードの検証をやり過ぎて本来の目的を忘れていた。エンコーディングがNVENCに決まって、もう全部終わったーと勘違いしていたほどw いい加減、録画サーバを構築すると言う本題に立ち返って次の作業に取りかかる。NVENCにはNVIDIAのビデオカードが必要なので、物理環境との依存関係が出来てしまう。無理に仮想環境やコンテナは使わず、大人しく物理サーバ上で処理させるつもり。物理サーバは最新のOSを使いたいので、CentOS6に限定される録画サーバは必然的に仮想サーバとなる(PX-Q3PEのドライバ的に)。録画機能に物理サーバ2台も用意するのはちょっと大げさだしね。という訳で、今回はCentOS7のホストにCentOS6のゲストを作って、そこで録画機能が正しく動作するかを試す。ハイパーバイザーはCentOS標準のKVMを利用する。... 続きを読む

録画サーバ構築 NVENCエンコード Linux編

長々と続けてきたエンコード検証もいよいよ最後、LinuxでのNVENCを試してみる。使うグラボは前回同様elsaのGD750-2GERTSP。NVENCはffmpegで利用する事になるが、ここまでのところffmpegについてWindowsとLinuxでの有為な差は見受けられないので、おそらく性能面では前回のWindows編と大差ないだろう。どちらかと言うとLinuxでの環境構築可否や手順の容易さが主な評価対象になるかもしれない。デュアルブートにしてあるsh67h3を今回はLinuxで起動する。公式からLinux用のドライバを検索してダウンロード。そのファイルを実行するとドライバのインストールウィザードに入るので適当に答えて完了させる。続いて、公式からcudaのtoolkitを見つけて、これもダウンロードしてインストール。... 続きを読む

分散FS 比較 cephfs vs glusterfs (3) 再検証編

前回試した際に、動作が不安定だったために具体的な検証すら見送ったcephfs。実は4月にcephfsのstable版を含むcephのメジャーリリースがあった。評価してみたいなあと思いつつも、ファイルサーバ用途としてはglusterfsが充分な機能を持っていたので、今の今まで後回しにしていた。ansibleとか録画サーバとかいじってたからだけど。そんな満足度の高いglusterfsだけど、唯一の欠点がopen()が異常に遅い事。大きいファイルを置くだけで、参照も更新も少ないファイルサーバくらいならいいんだけど、頻繁に更新が伴うような用途には向かない。例えば、lxcで作るコンテナの配置先とか。... 続きを読む

録画サーバ構築 QSVエンコード Linux編

前回に引き続いて、今回はLinuxでのエンコード性能を見ていく。うちのLinuxは特別な事情がない限り、全てCentOS7となる。録画サーバは前回Windowsとしても評価した、sh67h3のCore-i7 2600Sである。デュアルブートなので、Windowsを止めてLinuxで起動する。まずはWindows同様にソフトウェア・エンコードから評価する。エンコードに使用するffmpegのインストールは非常に簡単で、epelとnux-dextopのyumリポジトリを有効化してyum installするだけ。依存するパッケージもたくさん入っちゃうので、気になる人は『-y』しないで一度見てからinstallした方がよいかも。... 続きを読む

ansible gather_facts チューニング

前回、chefからansibleへの移行記事をまとめたが、その際にさらっとgather_factsの高速化に時間を使ったと触れた。そもそも素でansibleを使うとデフォルトで処理前段にgather_factsの処理が入る。これが何をしているかというと、各ノードのOSやスペック、ネットワーク情報などの収集だ。ansibleはサーバサイド・プッシュな動きをするので、ansible-playbookを実行すると対象ノード全てに処理を行う。gather_factsの処理も同様で対象ノード数に比例して処理時間が伸びていく。1ノードならまだしも、10ノードを超えだすとその待ち時間は耐え難いものに。chefサーバの場合はサーバプロセスが存在したので、その中でこの手の情報をキャッシュしてくれていたのだろうが、ansibleにはサーバプロセスが存在しないため、毎回律儀に各ノードから取得する羽目になる。 ... 続きを読む

録画サーバ構築 CentOS7+Win10 デュアルブート編

デスクトップ用途としてsh67h3が2台あるが、1台はCore i7 2600S、もう1台はCore i5 2400S。前者を録画用Linuxサーバ、後者をWindowsクライアントとして使うつもりだが、録画サーバでのエンコード検証のために、i7機の方にもWindowsを入れておきたい。というのも、ハードウェアエンコードの対応状況はWindows方が遥かに充実しているからだ。ついでにコアの違いによる性能差も把握できれば尚よい。PC複数台になり仮想化も当たり前になった中で、デュアルブートなんて何10年振りかという感じだが、難しい設定はないし、ささっと終わらせるつもりだった。... 続きを読む

録画サーバ構築 foltia+PX-Q3PE 検証編

録画サーバの構築に当たって、一旦はwindowsでシステムを作ってみた。感想としては想像以上によく仕上がっていて、このまま使い続けてもよさそうに思うほど。しかし、自分としてはリモートからのCLI管理を重視するため、Linuxでの運用も試しておきたい。ただし、今回選択したPX-Q3PEにはLinux用の公式ドライバが用意されていない。にもかかわらず、foltia ANIME LOCKERという有償ソフトはCentOS6でPX-Q3PEを動作可能にしている。初めてのシステムを作るときはとにかく成功パターンを確立する事。まずはこのソフトの評価版を使って、CentOSでのPX-Q3PE動作を確認する。このソフトはアニメ録画を中心とした作りになっているようなので、スポーツ/ドラマ/バラエティを録画したい自分としてはそのまま使い続けるかどうかも判断したい。... 続きを読む