DigiLoog

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

Archive for 2019年11月

高可用性DBのフロントエンドにMaxScaleを使ってみた

2019年11月30日(土) - 22:07 | カテゴリ: Linux

老朽化した自宅サーバとサービス終了したCloudGarageからの引越し先として、
新サーバの構築を進めているのだが、内部データベースの構成をどうするかが課題だった。

当初、MariaDB Galera Clusterを利用しようと考えていたが、
安定稼働に必要なメモリ容量と、スプリットブレイン対策の奇数台数運用がネックだった。
また、DBが完全停止した時のサービス再起動にも細かい手順が必要だったり、
DBを本職としていない筆者には難易度が高すぎるのでお蔵入りになってしまった。

………

そうなると、レプリケーション構成が候補にあがるのだが、
こっちはこっちで、Master消失時にSlaveをMasterに自動昇格する方法が問題になった。
スクリプトを自作しても良かったが、日々のメンテナンスが辛くなりそうなので没に。
他に使えそうな物がないか調査した所、
MaxScaleを使うとクエリのロードバランスと自動昇格が出来る事が判明。

何処かのパブリッククラウド基盤にも採用していた筈で、稼働実績がありそうなのと、
MariaDB Galera Clusterの構成にMaxScaleも組み込まれている事が多いので、
今後の技術検証にも使えると判断し自鯖バックエンドDBに採用する事にした。



CentOS8に”dovecot-pigeonhole”が無かった

2019年11月23日(土) - 23:42 | カテゴリ: 雑談

フィルタリングを集中管理する為に便利なので、sieveプラグインを利用しているが、
sieveプラグインを同梱している”dovecot-pigeonhole”のパッケージがCentOS8に無く、
ネットの海を右往左往したのでその備忘録。

原因は、RHEL8.0をリリースする際にdovecot-pigeonholeパッケージが削除された影響。
CentOS8はRHEL8を元にリビルドしている都合上、
大元となるRHEL8.0に含まれていないパッケージは含まない傾向がある。

ただ、至る所からブーイングが出たのか、
Red Hat Bugzillaで『次期RHEL8には”dovecot-pigeonhole”を含める』とアナウンスがあった。
実際、MBOX Kojiにもdovecot-pigeonholeパッケージが準備されている事を確認。
ただし、何かしらの理由があるのか、まだ403の状態になっていた。

という事で更に調査を進めると、独自ビルドした謎RPMを配布していたり、
自力でビルドしてdovecotと連携させる回避策が出てきた。

今回、メール鯖を刷新するにあたりdovecotが使えないのは致命的過ぎるので、
筆者はdovecot含めて全部独自ビルドする事に。
日頃からソースビルドは良く実行しているので特に苦も無く起動までこぎ着ける事が出来た。
ビルドオプションは次の通り。他にはsystemd.serviceファイルも作成したが、
全部書くとそれなりの量になるので、サーバ刷新が一段落したタイミングで書こうと思う。

◇dovecot
./configure –prefix=/usr/local/dovecot \
–with-pam –with-ldap=yes –with-mysql \
–with-lz4 –with-libcap –with-zlib \
–with-bzlib –with-lzma
make && make install

◇Pigeonhole
./configure –prefix=/usr/local/dovecot \
–with-dovecot=/usr/local/dovecot/lib/dovecot \
–with-ldap=plugin
make && make install

これで、残るは起動テストのクリアとメールデータの移行&切り替えになる。
残る作業が一番の山場なので、自鯖と言えども丁寧に切り替えを実施したい。



maxscaleとkeepalivedのチューニング中

2019年11月16日(土) - 23:38 | カテゴリ: 雑談

DB用ロードバランサにhaproxyを使うかmaxscaleを使うか最後まで迷ったが、
今回はmaxscaleを採用する事に。
決め手になったのは、レプリケーション構成を取っている時に自動昇格などが出来る点。
とは言っても、haproxyを長く使っている事もあり慣れているので、
他の使い方が出来ないかテストも継続中。

maxscaleを使う上でキモになるのはVirtual IPによる冗長化だが、
今回からデュアルスタック化する予定なので、如何にコンフィグを短くするかに四苦八苦中。
恐らく、vrrp_sync_groupを用いてヘルスチェック指定をまとめるの方法で行けそうだが、
新自鯖のコアになるサーバ・機能なので入念にチェックし、
情報が纏まったらそのうちブログに載せたい。…はよ、構築を進めねば



  • 応援中

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