Home –  Linux
Tag Archives: Linux

CentOS7でGstreamerを使う

CentOSを使っていてGstreamerを使いたくなったのですが、CentOSの標準のパッケージにはGstreamerがないのです。

EPELのリポジトリも使用することもおおいかと思いますがこちらも同様にマルチメディア系のパッケージが弱く、
Gstreamerを含めffmpegといったメジャーなもののパッケージもありません。

https://wiki.centos.org/TipsAndTricks/MultimediaOnCentOS7

さてどうしたものかなと思ってたらこんなのを見つけまして、この辺から調べた所EPELに加えてnux-desktopというリポジトリを追加するとyumでインストールできるようです。

rpm -Uvh http://ftp.riken.jp/Linux/fedora/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -Uvh http://li.nux.ro/download/nux/dextop/el7/x86_64/nux-dextop-release-0-5.el7.nux.noarch.rpm
yum install -y gstreamer1*
yum install -y ffmpeg

これでGstreamerとffmpegがインストールされましたヽ(=´▽`=)ノ

[vagrant@localhost ~]$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.0.7
GStreamer 1.0.7
http://download.fedoraproject.org
[vagrant@localhost ~]$ ffmpeg -version
ffmpeg version 2.6.3 Copyright (c) 2000-2015 the FFmpeg developers
built with gcc 4.8.3 (GCC) 20140911 (Red Hat 4.8.3-9)
configuration: --prefix=/usr --bindir=/usr/bin --datadir=/usr/share/ffmpeg --incdir=/usr/include/ffmpeg --libdir=/usr/lib64 --mandir=/usr/share/man --arch=x86_64 --optflags='-O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic' --enable-bzlib --disable-crystalhd --enable-gnutls --enable-ladspa --enable-libass --enable-libcdio --enable-libdc1394 --disable-indev=jack --enable-libfreetype --enable-libgsm --enable-libmp3lame --enable-openal --enable-libopenjpeg --enable-libopus --enable-libpulse --enable-libschroedinger --enable-libsoxr --enable-libspeex --enable-libtheora --enable-libvorbis --enable-libv4l2 --enable-libvpx --enable-libx264 --enable-libx265 --enable-libxvid --enable-x11grab --enable-avfilter --enable-avresample --enable-postproc --enable-pthreads --disable-static --enable-shared --enable-gpl --disable-debug --disable-stripping --shlibdir=/usr/lib64 --enable-runtime-cpudetect
libavutil      54. 20.100 / 54. 20.100
libavcodec     56. 26.100 / 56. 26.100
libavformat    56. 25.101 / 56. 25.101
libavdevice    56.  4.100 / 56.  4.100
libavfilter     5. 11.102 /  5. 11.102
libavresample   2.  1.  0 /  2.  1.  0
libswscale      3.  1.101 /  3.  1.101
libswresample   1.  1.100 /  1.  1.100
libpostproc    53.  3.100 / 53.  3.100

こんな感じになりました。Gstreamerは1.07でffmpeg2.6.3のようです。

Pacemakerでちょっと気になっている事

とりあえず、ボチボチとサンプルをコピペや改変をしながら何とか動作するようにはなっていますが、幾つか意味が分からず設定していたりして困っていたりします。

今回、特にどうしていいのか分からないような気になっている事を2点自分なりにまとめました。
要はメモ書きみたいなものですね。あと、通りかかった神様みたいな人が教えてくれることを祈って・・・。
過疎BLOGだからありえないと思いますがヽ(´ー`)ノ

 

 

サンプル設定そのままでもWARNINGが出てしまう

よくサンプルとかの設定をそのまま設定していると下記のようなWARNINGが表示されます。

WARNING: postgresql: specified timeout 60s for stop is smaller than the advised 120
WARNING: postgresql: specified timeout 60s for start is smaller than the advised 120
WARNING: postgresql: specified timeout 60s for notify is smaller than the advised 90
WARNING: postgresql: specified timeout 60s for demote is smaller than the advised 120
WARNING: postgresql: specified timeout 60s for promote is smaller than the advised 120

設定値が小さいぞとか警告掛けられていると思うんですがこの手の警告は普通に無視していいもんでしょうか?そもそもサンプル通りにやって警告が出るのが正直「こまったなぁ」と感じてしまいます。

この警告をどのように受け取っていいのか・・・・サンプルでも表示されるので「無視しても良いもの」と受け取っています。
実際に運用されている場合なのはどうなのか?というのは気になる所です。

 

 

location、 colocation、 order ってなんぞや?

サンプル見ながら適当に設定を↓のようにやってみたのですが、どうにもこうにもlocationだのcolocationだのorderとか雰囲気は分かるもののパッと見て設定の意味が分かりません。

crm configure location rsc_location-2 msPostgresql \
    rule role=master  200: uname eq postgres01 \
    rule role=master  100: uname eq postgres02 \
    rule role=master -inf: defined fail-count-vip-master \
    rule -inf: not_defined default_ping_set or default_ping_set lt 100

crm configure location rsc_location-1 vip-slave \
    rule  200: pgsql-status eq "HS:sync" \
    rule  100: pgsql-status eq "PRI" \
    rule  -inf: not_defined pgsql-status \
    rule  -inf: pgsql-status ne "HS:sync" and pgsql-status ne "PRI" 

crm configure colocation rsc_colocation-1 inf: msPostgresql        clnPingCheck
crm configure colocation rsc_colocation-2 inf: vip-master       msPostgresql:Master
crm configure order rsc_order-1 0: clnPingCheck          msPostgresql
crm configure order rsc_order-2 0: msPostgresql:promote  vip-master:start   symmetrical=false
crm configure order rsc_order-3 0: msPostgresql:demote   vip-master:stop    symmetrical=false

locationというのが、ruleの部分に指定されているものに合わせてリソースを振り分けるという指定だと思うんですね(´・ω・`)
rule部分の指定がイミフで(;´ρ`)

colocationってなんぞ?locationと何が違うのかな。構文も違いますが・・・。

そして最後にorder。 たぶん何かの順番を決めるものなんでしょうが、これは何の順番を決めているのでしょうか?

 

この辺の解説をやさしく詳しく丁寧に教えてくれるドキュメントとかないものだろうか(´;ω;`)

PacemakerとPostgreSQLの組み合わせがやっと出来ました。

最初わけがわからず挫折した、PacemakerとPostgreSQL 9.1の同期レプリケーションによるマスター・スレーブ構成の設定がなんとか完了しました。

未だに意味のわからない設定とか多々あるので、これから学習しなければ・・・と思います。

えと、使ったリソースエージョントは「PostgreSQL 9.1 ストリーミングレプリケーション対応 リソースエージェント」です。

さて設定についてですが基本的にPacemakerわかる人はすぐわかると思いますし、私がやった設定をここで書いても私自身解説できないのでなんの意味もないのでここでは書かない事とします(;´Д`)

個人的にハマったのは、nodeリストにうっかりホスト名を間違えて記載してしまって気がつかずに数時間・・・もしくは一日ぐらいはまってました(;´Д`)

あと、スレーブ側のPostgreSQLのpgsql-statusがHS:aloneのまま上手くいきませんでした。

これはどうやって直したのかよく覚えてないのですが、多分yumでインストールしたPostgreSQLではenable-nls設定されているためうまく動作せず、改めてソースから–enable-nlsオプションは付けずにコンパイルしたものを使いました。
たぶんそれで解決出来ると思います。

pg_controldataコマンドがローカライズされてしまって、うまく認識できないんじゃないかと推測しています。

まったくもって勘違いでした。もう一度やってみたら普通に動作しました。お騒がせいたしましたm(_ _)m

そうこうしてやった結果、なんとか動作しましたcrm_mon -fAをしてみるとこんな感じになりました。

============
Last updated: Sun Jan 8 18:40:50 2012
Stack: Heartbeat
Current DC: postgres02 (94f13cd6-969f-42e8-afb1-121484975bb3) - partition with quorum
Version: 1.0.11-1554a83db0d3c3e546cfd3aaff6af1184f79ee87
2 Nodes configured, unknown expected votes
4 Resources configured.
============

Online: [ postgres02 postgres01 ]

vip-master (ocf::heartbeat:IPaddr2): Started postgres02
vip-slave (ocf::heartbeat:IPaddr2): Started postgres01
 Master/Slave Set: msPostgresql
 Masters: [ postgres02 ]
 Slaves: [ postgres01 ]
 Clone Set: clnPingCheck
 Started: [ postgres02 postgres01 ]

Node Attributes:
* Node postgres02:
 + default_ping_set : 100
 + master-postgresql:0 : 1000
 + master-postgresql:1 : -INFINITY
 + pgsql-data-status : LATEST
 + pgsql-master-baseline : 11:0000000011000078
 + pgsql-status : PRI
* Node postgres01:
 + default_ping_set : 100
 + master-postgresql:0 : -INFINITY
 + master-postgresql:1 : 100
 + pgsql-data-status : STREAMING|SYNC
 + pgsql-status : HS:sync

Migration summary:
* Node postgres02:
* Node postgres01:

構成がサンプルと微妙に違うせいかcrm_mon -fAの結果も結構違うのが気になっていますが、幾つかやってみた感じだ問題なく動いているように感じます。

 

あとは色々試してみて問題無いことを確認するのと障害発生時の対応HOW TO集を準備できればよい・・・と。

LCMCで楽チン設定のはずが・・・

PacemakerをGUIで設定・インストールできるというLinux Cluster Management Console(以下LCMC)を使って楽チン設定・・・・・を期待してました。

結論からいうとそれはムリでした。
いや、多分GUIでみながら楽チン設定は可能なんじゃないかと思います。しかし私のような初心者に向いたアプリケーションではない。という風に思いました。
まぁ、これはこれでいいんじゃないかなと思いますが。

クラスタ設定、Pacmakerインストール

マズ最初につまずいたのは素のScientific Linux 6.1 x64版(以下SL6.1)にLCMCを使って導入しようとしたら、上の画像の通りPacemaker/HB、Pacemaker/Coroいずれもコンボボックスが表示されるインストールすら出来ないことです(;´ρ`)・・・・・

結局の所、手動でPacemakerをインストールしたらインストール済みとなりなりました。またDrbdに関してはインストールを行ってみたものの・・・利用できるパッケージが見つからずインストールできませんでした。

多分この辺はSL6.1 使ったためにインストールできなかったのではないかと思っています。
CentOS系だったら出来るのだろうか?気になる所です。

 クラスタ設定

まぁ、なんというかよくわからん!w

今まではWeb等で書いてある通りに入力するか微妙にそれからアレンジを加えるぐらいしかやった事ないので、バッ!と入力項目ずらずらーと並ぶと圧倒されますね。

どの項目に何を入れればいいのか。どのサービスがどんな内容なのか?
そういった内容が分かっていれば使いやすいのかもしれません。
私には何をどうしていいのかがサッパリわかりませんでしたwwww

感想など

先日作ったUltraMonkey-L7とPacemakerの組み合わせのサーバへ接続してみた所、問題なく接続できて現在の状態などがグラフィカルでわかるのとサービスの移動や停止などが簡単に行えて簡単な運用であれば非常に分かりやすくていいのかなと。

設定に関してはもっとPacemakerを勉強しろ!ということなんだろうと思いますヽ(´ー`)ノ
まぁコレばっかりはしょうがないすね。 LCMCもまだ始まったばかり見たいですし。

将来的にはウィザード的なものでサービスの追加などパラメータが難しいものに関しては補助してくれる機能があると嬉しいかなと思います。

当面の間は私としてはコマンドラインで作業するほうにもどろうかと思います。
設定したときのログとか取りやすいですしねヽ(´Д`;≡;´Д`)丿

Pacmakerをインストールしてみて(感想)

ちょっとここまでやって一旦休憩。

分かったことや分からない事、感想などを私の中でまとめてみました。

分かった事

Pacemakerの大枠、仕組みはなんとなく理解できた様な気がします。
どんな感じのものなのかという感覚的な部分だけですが、分かりました。

おかげで最初まったく意味が分からなかった記事やドキュメントに若干ですがついていけるようになりました。

 

分からない事

分からない事だらけです。細かいところはさっぱりですねー。ただまぁ、簡単に分けると三種類かなと思います。

  1. primitive だったり clone だったり group だったり location  の意味や関連性。
  2. 色々なRAがあるみたいだけどその内容と使い方。
  3. LCMC使ってインストールするのとLinux-HA公式の手順とどちらがよいのか?

 

感想など

私自身は主に小規模(というか極小といってもいいぐらい?)なのでそんなに大量なアクセスを捌いた経験とかはないのですが・・・・そんな視点からです。

インストールまでについてはLinux-HA Japan公式サイトにあるのですが、その先の解説がなくいきなりMLとかだと設定についての質問(用例ぐらいレベル)になっています。

Pacemakerのドキュメントもありますが、ああいった硬い内容ではなくチュートリアル的なものでprimitiveだったりclone だったりのgroup だったりの解説があると助かります。

正直、gihyo.jpさんの記事がなければくじけていたかも知れません。

あと運用についての情報もあんまり見つからないのでそういった情報が充実してあると助かるなぁ・・・と。

素朴な疑問としてはさくらのクラウドで2台借りてPacemakerインストールして・・・・とやっても問題ないのかな?仮想環境借りてやる場合にもHA構成できたら嬉しいので。
まぁ、目的としては片方OFFLINEにしてメンテしてもサービスには影響でないしたまによくわからない理由でサービス落ちたとしてももう一方でサービス継続して欲しいって理由なんですが。

あ、最後にLinux-HA JapanさんのHPってページ出るまで重くないですか?ってのもすごく気になりましたw

全体的には使える状況にあるなら使っていきたいなと思う。って所で。
現在の仕事場だとなかなか・・・・。