師走も最終局面な今日この頃ですが、今月もリリース情報と知恵袋です。
リリース情報はDRBD 8.4.1とBOOTHがメインです。
知恵袋ではPacemaker Cloudを紹介します。
1. リリース情報
1.1 DRBD 8.4.1
1.2 BOOTH
1.3 Debianパッケージ
1.4 LCMCの新機能
1.1 DRBD 8.4.1
* Read load balancing diskセクションに「read-balancing」パラメータを追加
* Works with Linux-3.2 Linux 3.2対応
その他のバグフィックス、機能追加情報はこちら。
単一リソースに設定した複数のvolumesから同時にI/Oが発生するとカーネルのリストが
破壊されるというバグを修正しました。
* Fixed a bug that might cause a kernel OOPS in the worker thread while the receiver tied to establish a connection (drbd-8.4.0 regression)
(DRBD 8.4.0にも含まれるバグです)
* Fixed an issue in the receiver that could cause connection triggered by simultaneous IO on multiple volumes in a single resource
単一リソースに設定した複数のvolumesから同時にI/Oが発生する条件でのreceiverの動作を修正しました。
* Consider the discard-my-data flag for all volumes
全てのvolumesに対してdiscard-my-dataフラグを設定することができるようになりました。
8.4.0では、discard-my-dataフラグを設定しても最初のvolumeにしか効いてなかったようですね ^o^;
* Fixed attaching to backing devices that do not support barriers/flushes, when barriers/flushes are not disabled by the configuration.(drbd-8.4.0 regression)
バリア/フラッシュをサポートしていないデバイスへの接続処理を修正しました。
(DRBD 8.4.0にも含まれるバグです)
* Fixed a rare compatibility issue with DRBD’s older than 8.3.7 when negotiating the bio_size
DRBD 8.3.7以前とのバージョン互換性(bio_size関連)を修正しました。
* Fixed a rare race condition where an empty resync could stall with if pause/unpause events happen in parallel
再同期処理実行中にpause/unpauseが同時に発生すると、再同期処理が競合状態に陥る可能性がありましたが、
修正されました。
* Made the re-establishing of connections quicker, if it got a broken pipe once. Previously there was a bug in the code caused it to waste the first successful established connection after a broken pipe event.
再接続時の動作を改善しました。
* crm-fence-peer.sh: Can now deal with multiple DRBD instances being in a master/slave group
DRBDの複数リソースをPacemakerのgroupで管理する場合、フェンシングに使用する
crm-fence-peer.shにリソースのIDを指定する必要がなくなりました。
参考:http://linux-ha.sourceforge.jp/wp/archives/2468
* Optional load balancing for read requests: new keyword “read-balance”
diskセクションに「read-balancing」パラメータが追加されました。
- prefer-local(ローカルディスクからの読み込み優先)
- prefer-remote(リモートディスクからの読み込み優先)
- round-robin(ローカルおよびリモートディスクからラウンドロビンで読み込み)
- least-pending(ローカルディスクでペンディングが発生していた場合リモートディスクから読み込み)
- when-congested-remote(ローカルディスクで処理が混雑していた場合リモートディスクから読み込み)
--- a/documentation/drbdsetup.xml +++ b/documentation/drbdsetup.xml @@ -481,6 +481,23 @@ </para> </listitem> </varlistentry> + + <varlistentry> + <term> + <option>--read-balancing <replaceable>method</replaceable></option> + </term> + <listitem> + <para> + The supported <replaceable>methods</replaceable> for load balancing of + read requests are <option>prefer-local</option>, <option>prefer-remote</option>, + <option>round-robin</option>, <option>least-pending</option> and + <option>when-congested-remote</option>.</para> + <para> The default value of is <option>prefer-local</option>. + This option is available since 8.4.1. + </para> + </listitem> + </varlistentry> +
--- a/drbd/linux/drbd.h +++ b/drbd/linux/drbd.h @@ -96,6 +96,14 @@ enum drbd_on_congestion { OC_DISCONNECT, }; +enum drbd_read_balancing { + RB_PREFER_LOCAL, + RB_PREFER_REMOTE, + RB_ROUND_ROBIN, + RB_LEAST_PENDING, + RB_CONGESTED_REMOTE, +}; + /* KEEP the order, do not delete or insert. Only append. */ enum drbd_ret_code { ERR_CODE_BASE = 100,