Tag Archives: Linux

録画サーバ構築 QSVエンコード Ubuntu 16.04 失敗編

構築中のホストはGPUサーバとして使う予定なんだけど、自宅用のサーバで専用ホストなんて立てる余裕はないから、今までCentOSが担ってきた録画サーバとしての機能も移植する予定。録画サーバで問題になるのがハードウェアエンコード。特にQSVエンコードの設定が一番厄介。GPUサーバなんで当然ビデオカードは刺すつもりだから、QSVエンコードでなくてNVENCを使うという手もある。はっきり言ってNVENCの方が設定そのものは楽だし、最新のIntel Media Server Studio 2017 R3でもGeneric Installの対象はubuntu 14.04のままだし。... 続きを読む

openldap サーバの samba 連携

現在、ローカルの認証とsshの認証をLDAPに切り替えた。続いて統合したい認証はsamba。統合しないと独自でパスワード用のDBを持つことになるため、他の認証と比してダブルマスター感が非常に強く、何としても統合しておきたい対象の1つ。一方で認証不能の障害時にsambaが悪いのか、ldapが悪いのか、切り分けがしづらいので、いざとなったら通常認証に戻して切り分け出来るようにしておくのがベター。sshだったら、ldap認証でないユーザーもいるだろうから切り分けしやすいんだけどね。... 続きを読む

ubuntu 16.04 LTS インストール

録画サーバ兼ファイルサーバとなっている自宅サーバに、さらにGPU機能を追加しようという計画。これを機に数年間使ってきた単純なLXC運用をLXD、もしくはopenstackに切り替えてみたいという願望もある。その場合、開発が先行しているubuntuをホストOSとする選択肢もありうる。何十年も使い続けてきたredhat系のCentOSに対してdebian系のubuntuは仕事でちょっと触ったことがある程度。それぞれ一長一短あるんだけど、よい機会なのでubuntuを触ってみる。... 続きを読む

Ubuntu 移行 & GPU サーバ化 検討

前々からGPUも使ってみたいというニーズがあり、今のサーバ構成の中でどのように実現するか悩んでいた。GPUの用途としては機械学習とマイニングを考えているので、出来れば高スペックなグラボを数枚用意したい。久々にNVENCの評価もできるし。現在は省スペースキューブPCのShuttle Sh170R8にM.2 SSDとSATA4本にチューナーボードまで刺しているので、タワー内は窮屈な状態。更にGPUを乗せるとなると1スロット幅のものに限られてしまう。元はと言えば、デスク脇に置くのを前提に小さい筐体を使ってきたが、今やウォークイン・クローゼット内の下部スペースに置いているので、そこまで小ささにこだわる必要もないか。... 続きを読む

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のターミナル上で作業していたので、ゴミ箱に移るということもなく、完全に消えてしまったのだ。... 続きを読む

録画サーバ構築 QSVエンコード CentOS7.3編

幾つかのハードウェアエンコードを試してきたんだけど、やはりIntelのQSVエンコードが比較にならないくらい美しい。VAAPIを使ってOSの自由度を上げることも考えたんだけど、品質を犠牲にするのは忍びない。最新のIntel Media Server StudioがCentOS7.2をGold OSとしているため、OSの選択が硬直化してしまうことがデメリット。一応、Generic Installという手順もあり、それを使えばOSの選択肢は自由になるはずなので、今回はこのGeneric Install手順を確立したい。... 続きを読む

CentOS7 + kibana + Elasticsearch 構築

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

mirakurun バッファ 枯渇障害 対策編

epgrec UNA + mirakurunによる録画環境で数日に1回くらい録画が失敗する問題。前回、ログの出力内容からmirakurunのTSFilter.jsで問題が起きているところまでわかった。このクラスはstream.Duplexを継承していて、その継承元にbuffered writeのような処理がある模様。素直に考えれば何らかの事情でwriteが進まず、書き込むべきdataがbufferに貯まっていき、いずれoverflowに至ると。根本対策としてはwriteが滞ることの改善、それが無理ならbufferを大きくして枯渇までの時間を稼ぐ。... 続きを読む

CentOS7 + Elasticsearch クラスター 構築

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

mirakurun バッファ 枯渇障害 調査編

安定運用に入ったepgrecだったが、稀に録画が失敗してしまう。頻度は読めないが、多くても1週間に数回とか。定期性がないので、自分の作業が影響したのかと思ってしまって調査を先延ばしにしていた。録画に失敗すると、rivarunとリアルタイムエンコードしているffmpegのプロセスが残り続けるので、おいおい何かのきっかけで気が付く。特にffmpegのプロセスが厄介で、QSVエンコードを使っているせいか、割り込み不可の待機状態に入ってしまいkillできなくなってしまう。... 続きを読む

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

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

録画サーバ構築 epgrec UNA リアルタイム エンコーディング

epgrec UNAをmirakurunと連携させて動かすようにした。細部で仕様が合わないところもあるが、番組更新や予約録画など主要処理が動作するようになったのでよしとする。続いて何とかしたかったのが、トランスコーディング処理。現在のepgrec UNAの作りだと時刻通りにTS録画を行い、その後にトランスコード処理としてmp4へのエンコードとcomskipを使ったチャプター追加を行っている。この録画後の処理が長くてうんざりする。ちょうど番組が終わるから見ようと思ってもしばらく見ることが出来ない。... 続きを読む

録画サーバ構築 epgrec UNA+mirakurun環境 epgrec改造編

epgrec UNA + mirakurun の組み合わせで動作させるために、前回mirakurunの調整を行った。チューナーの利用元はepgrec側に統一したいので、mirakurun側での操作を止めることが目的だった。今回はepgrec側でのチューナー操作をrecpt1からrivarunに変更して、別サーバ上のmirakurunでも録画できるようにする。ちょっとややこしいけど、ローカル2本のチューナーとリモート2本のチューナーを透過的に扱う。具体的にはmirakurunのtuners.ymlを以下のように用意する。... 続きを読む

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

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

録画サーバ構築 epgrec UNA+mirakurun環境 mirakurun準備編

2台のサーバに2台のPT3で運用する構成を考える。主目的は冗長化でどちらのサーバでも2並列までは録画できるようにする。また、通常運用時は2台のPT3で4並列まで録画できるようにするのが理想だ。ネットワーク越しに2つのPT3を透過的に扱いたいので、チューナーを抽象化してくれるmirakurunはどうしても導入したい。バックエンドがmirakurunだとすると、普通に考えれば録画管理もchinachuに任すのが順当。実際にchinachuも使ってみたんだけど、UI的にはepgrec UNAの方がわかりやすいような。... 続きを読む

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

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

録画サーバ構築 PT3 Rev.A @ LXC

今まで仮想サーバ上で動かそうとしていた録画サーバ。チューナーカードをCentOS7でも問題なく動作するPT3に変更したので、今回はCentOS7上のLXCコンテナとして録画サーバを構築する。コンテナの方がストレージ周りをホストOSと共有しやすく、性能的なオーバーヘッドも少ないのでKVMより扱いやすい。ホストOS上そのものに録画サーバを構築してしまうと、自宅インフラが硬直的になってしまうので避けておく。また、ドライバの関係でノードを分けていたチューナーサーバとエンコードサーバも1つのノードとして統合する。... 続きを読む