ツナワタリマイライフスマートフォン用の表示で見るツナワタリマイライフ日常ネタから技術ネタ、音楽ネタまで何でも書きます。TRANSFERSはじめにCofiguration編第2弾。Transfer(SST)について。transferを要求するとき、デフォルトではISTメソッドを用います。Transfer(SST)メソッドを用います。ClusterはSSTに対していくつかのバックエンド・メソッドをサポートしています。Snapshotがあります。(訳注:表は省略しますが、mysqldump、rsyc、xtrabackupの3つのメソッドがあります。accessもわかんないな。mysqldサーバにroot権限でアクセスするかどうかかな?)このメソッドはwsrep_sst_methodパラメタで指定します。Transferにとってベストなメソッドは1つではありません。それぞれにあった正解があります。幸いにも受信ノードだけにmethodを設定すればよいです。donorがそれをサポートしていれば、joinerがリクエストしたmethodで転送します。SNAPSHOTこの方法ではメソッドはmysqldump、1つです。Methodは以下のような利点を持ちます。Liveなサーバ全て利用可能です。Snapshotを受信できます。受信ノードとdonorノードが同じ設定を持っている必要性がありません。optionをupgradeすることができます(???)例えば、antelopeからbarracudaファイルフォーマットにマイグレーションしてこのtransferメソッドを使うとき、パーティションから別のパーティションへ圧縮またはiblogを移動させればよいのです。(訳注:これはストレージエンジンの設定変更が伴う同期でも、SQL文を通じて実行するから、実行可能だということでしょうね。Transferは以下の欠点があります。snapshotが使えることだろう。これはサーバをすtなどアロンで起動させてクライアントコマンドラインからクラスタへの加入を指示できるということである。フォーマットの異なるデータベース間で使用することもできる。mysqldumpは受信ノードがフル機能を持つデータベースであることを必要とする。そのためdonorノードと他のノード両方でroot権限が必要となる。このtransferメソッドはかなりのデータベースで他のメソッドより遅くなってしまう。小さいデータベースであれば早いこともあるだろう。ログファイルより小さいデータベースであれば。注意:警告:このメソッドは各ノードで実行されるmysqldumpのバージョンに非常に敏感である。それぞれインストールされたバージョンがクラスタ間で統一されてないかもしれない。Transferはあるノードと新しいノードで非互換があると失敗してしまう。時々、mysqldumpが唯一の選択肢なこともある。pluginがupgradeするときである。mysqldumpスクリプトは送信ノードでのみ動く。clientを通じて加入ノードに流し込まれる。mysqldumpがデータベースclientを通じて行われるから、設定はwarep_sst_methodパラメタの設定範囲を超えて、いくつかのステップが必要となる。Snapshotにはrsyncとxtrabackupの2つのバックエンドメソッドがある。Transferメソッドは以下のような利点がある。データをディスク上の物理的なデータコピーを行うので、データベースサーバに依存しない。Transferは以下のような欠点があります。加入ノードはdonorノードと同じストレージエンジンの設定を持つ必要があります。snapshotを要求するとき、データベースサーバは変更を適用するために再起動しなければならないことを意味します。transferが完了するまでclientからのアクセスを受け入れられません。Transferで最も速いバックエンドメソッドがrsyncです。Transferの全ての利点と欠点を持ちます。転送している間、donorノードはブロックされますが、データベースの設定やルートアクセスを必要とせず、その設定も簡単です。テラバイトスケールのデータベースを使っているとき、rsyncはxtrabackupの1.5から2倍速いでしょう。rsyncは差分を転送するアルゴリズムを持つので、rsync-wan変更という特徴も持ちます。これはよりI/Oに強く依存するだけでなく、ネットワークスループットもボトルネックになりえます。注意:もっともよくあることとして、このメソッドはdonorとjoiningノードでのrsyncバージョン間の非互換に出くわすことがありますrsyncスクリプトはdonorとjoiningノードの両方で動きます。joinerのほうでは、rsyncをサーバモードで開始し、donorからの接続を待ちます。donorでは、rsyncをクライアントモードで開始し、データディレクトリをjoiningノードに送信します。(訳注:donorのほうからjoinerに送信するんですね、意外。Transferでもっともポピュラーなバックエンドメソッドがxtrabackupです。Snapshotの利点と欠点を持ちますが、仮想的にdonorノードではnon-blockingとなります。xtrabackupはMyISAMテーブルをコピーする短時間だけdonorノードをblockします。これらのテーブルが小さければ、ブロック時間はとても短くて済みます。これはスピードがコストとなります。xtrabackupはrsyncよりかなり遅くなります。xtrabackupは短時間でデータ全体をコピーしますが、donorの性能を著しく劣化させます。注意:このメソッドでは設定に気をつけましょう。xtrabackupは設定ファイルのオプションにいくつか設定が必要ですが、donorサーバにはrootアクセスが必要となります。おわりにxtrabackupを使ったことがないんですが、mysqldump同様、普段はdumpに使うんですかね?ノードをブロックにしない点がrsyncより勝っていますが、遅いようですね。www.submit.ne.jpリストアがかなり速いようですね。configuration編第5弾。Configuration編第4弾。quorumの再計算について。はてなブログProインフラよりのソフトウェア開発エンジニア3年生。技術ネタをつらつらと書きます。Jakarta月別アーカイブ注目記事grasschaspyはてなブログをはじめよう!take_she12さんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。