前回のRedisの冗長化では、Redisの標準機能を用いてRedisの冗長化を行う方法についてご紹介しました。
今回はRedisでマルチマスター構成のクラスタを組むための機能であるRedis Clusterについてご紹介します。
OSS
Redisの冗長化
本稿では、Redis標準のReplicationおよびSentinel機能について解説します。
Redisの可用性を高めるための方法として、以下の3つの機能が標準で用意されています。
- Replication: マスター・スレーブ型のレプリケーション
- Sentinel: 死活監視と自動フェイルオーバーを行うサービス
- Cluster: マルチマスター構成。データを複数サーバに分散できる(シャーディング)
PostgreSQL 12の新機能:CTEの高速化
現在開発中のPostgreSQL 12では、様々な新機能の追加や改良が予定されています。本稿では、その中でも実用上の価値が高いと思われる改良の一つである、CTEの高速化についてご紹介します。
CTEとは
CTEとは、”Common Table Expressions” (共通テーブル式)の略で、SQL文内でテーブル式を定義し、それを同じSQL文内から参照できるものです。CTEには、普通の検索を行うだけでなく、再帰的なクエリ実行を行ったり(WITH RECURSIVE)、CTE内で更新処理を行うこともできますが、PostgreSQL 12で改良されたのは、再帰も更新も伴わない通常の検索処理で使われるCTEです。
Redisのデータ永続化
インメモリDBとデータの永続化
前回のRedisの紹介では、Redisの特長や導入手順、基本的な使い方についてご紹介しました。本稿では、インメモリデータベースのデータ永続化についてご紹介します。
Redisはインメモリデータベースであるため、サーバプロセスが終了するとメモリ上のデータも消えてしまいます。そこで、Redisはサーバプロセス終了後もデータを保持するための2種類の機能が用意されています。
Redisの紹介
Redisとは
Redisはインメモリで動作するKey-Valueストア(KVS)ソフトウェアです。Redisのデータはすべてメモリ内に保存されるため、高速なデータの読み書きが可能です。また、単純なキーと値のペアだけでなく様々なデータ構造が利用でき、データの永続化、冗長化、クラスタといった機能を備えており、様々な用途に対応できます。RedisはBSDライセンスの元配布されているオープンソースソフトウェアです。
Zabbix 4.2の紹介
本記事では、 Zabbix 4.2 で追加される機能や変更点について解説します。
Zabbix 4.2 (beta1) の変更点は以下のページに記載されています。
5 What’s new in Zabbix 4.2.0
Release Notes for Zabbix 4.2.0beta1
なお、現在 beta 版リリースの状態のため、4.2 正式リリースまでに仕様変更が行われる可能性があります。また、 Zabbix 4.2 はポイントリリースとなり、サポート期間が短いため、実運用では LTS バージョンの利用を推奨します。
Zabbix 4.2 (beta1) の主な変更点を以下に挙げます。
1. アイテム値の保存前処理の拡張
DRBD9クラスタをLINSTORで管理する
DRBD9を管理するツールとしてdrbdmanageがありますが、drbdmanageには分散データベース(drbdctrl)の性能や、ノード間の通信に使用しているD-Busプロトコルの安定性など、いくつかの問題を抱えていました。
この問題を解決するため、DRBD9の新しい管理ツールとしてLINSTORが新たに開発されました。本記事ではLINSTORを使ってDRBD9の3台構成クラスタを管理する方法について紹介します。なお、2019年1月現在LINSTORはβ版という位置づけになります。
DRBD9 の 3台構成クラスタ
DRBD9では、以前のバージョンに比べて3台以上のクラスタをより簡単に構築できるようになりました。DRBD8では、2台構成のクラスタを階層化するスタック構成を使用して3台以上のクラスタを組むことができましたが、構成が複雑になり、柔軟性にも欠けるものでした。
また、drbdmanageにより簡単にDRBDクラスタの管理ができるようになりました。
本記事では、drbdmanageを使用して3台構成のDRBDクラスタを構築する方法について紹介します。
なお、新しい管理ツールとしてLINSTORが現在開発されており(2018年11月現在β版)、将来はLINSTORへの移行が予定されています。LINSTORを用いたDRBDクラスタの構築については後日改めて公開する予定です。
1. 導入手順
本記事では以下の手順で導入を行います。
- 必要なソフトウェアのインストール
- ssh、LVMの設定
- クラスタの初期化
- 2台目のノードの追加
- ボリュームの追加
- 3台目のノードの追加およびボリュームのアサイン
DRBD9 と Pacemaker の構成
本記事では、Linuxの分散ストレージシステムであるDRBDの最新版であるDRBD9とPacemakerを組み合わせた構成について、基本的な構成でのインストール手順およびDRBD8の場合との違いなどについて解説していきます。
1. DRBD9について
DRBDは複数台のLinuxサーバで、ネットワーク経由で共有ストレージを構築するためのシステムです。
DRBD9はDRBD8.xから以下のような機能が強化されています。
- 自動プロモーション機能によりマウント時に自動でプライマリへの昇格・セカンダリへの降格が行えるようになった
- drbdmanage コマンドによりノードやボリュームの追加・削除が簡単に行えるようになった
- 1階層で最大31ノードまでの多ノード構成が可能(DRBD8まではスタック構成のみ可)
特に、自動プロモーション機能によりPacemakerでクラスタを組む場合に大幅に設定を簡略化できるようになりました。
Zabbix 4.0のインストール
本記事ではZabbix 4.0のインストールおよび初期設定を行い、Webフロントエンドにログインできるようにするまでを解説していきます。
1. 構成
ZabbixサーバはZabbixサーバ本体、Webフロントエンド、データベース、およびデータ取得のための補助サービスから構成されます。
Zabbixでは各種設定や監視データはデータベースに保存されます。
また、ZabbixはSNMPTRAPを直接受信することができないため、snmptrapdが受信したデータをSNMPTTで整形してログファイルに出力し、Zabbixはそのログを監視するという方法をとっています。
本記事では以下の構成でインストールを行います。
- RHEL 7.5 / CentOS 7 (1804)
- Zabbix 4.0
- Apache httpd 2.4 (OS同梱のパッケージ)
- PostgreSQL 10.5
- ZabbixJavaGateway (JMX監視モジュール)
- SNMPTT (SNMPTRAP監視モジュール)