Gentoo + drbd + ocfs2

はじめに



彼らはどういうわけか私のためにタスクを設定します...彼らは1台のサーバーが良いと言います...しかし、私は訪問者の成長を考慮に入れます、それはリターンの生産性を高めるといいでしょう、そして1台のサーバーはこの目的のために購入されます...

別のサーバーが良い、私は思った...それをどうするか?

プログラマーと話をして、彼が何を望んでいるかを大まかに理解しました...



つまり、コンテンツの同時リターン、およびnfsやボールのようなもの...

しかし、データがネットワーク上で追跡され、1つのサーバーのディスクがロードされるため、オーバーヘッドが発生します。したがって、データを両方のサーバーに同時に格納し、相互に複製する必要がありました...

グーグルでこのトピックに関する何かを探して、クラスタfsに関する情報を見つけ、gfs2と後でocfs2が私に適していることを発見しましたが、専用ファイルストレージが通常使用され、ノードがすでにマウントされているという問題がありました...それは私には受け入れられませんでした会議(gentoo@conference.gentoo.ruでクラスターやその他の面白いことを扱っている人がいたので)で人々に質問する



ソースデータ

1バトルサーバー70ギガの情報、通常の1Tb reiserfsパーティション

2 2TBディスクを備えた新しいサーバー、lvmを使用して、最初のサーバーのパーティションに等しいパーティションを選択します。最初のサーバーからrsyncによって転送されたサイトが機能するセーフゾーン。



Drbd



これは何?

オフサイトのdrbd.orgにアクセスすると、この写真を見た後、これが必要なものであることがすぐに明らかになりました。

画像

つまり、本質的にはネットワークRAID-1です。

そこには複製がありますが、drbdはデバイスを作成するだけで、その上にクラスターfsが必要です。そうでなければ、かなり奇妙に動作します。



だからdrbdを入れて

1.ノード間のネットワークが機能するはずです

2.便宜上、/ etc / hostにエイリアスを指定することが望ましい

3.ディスクのサイズは同じである必要がありますが、2台目のコンピューターでは2TBの空き容量が多く、最初の1TBのみで最初のサーバー上の場所にほぼ等しい部分をlvmを使用して割り当て、残りをディスク用に使用します。

drbdデバイスを作成すると、2つのうち小さい方のサイズに自動的に等しくなるため、ほぼ等しいピース...ここにこのような素晴らしいボーナスがあります...

4.コアを有効にする必要があります



デバイスドライバー--->

-コネクタ-統合ユーザースペース<->カーネルスペースリンカー



暗号化API --->

-暗号アルゴリズムマネージャー



5.両方のノードにdrbdを配置します

#emerge drbd



6. config /etc/drbd.confを編集します

おおよそ次のようになります



global { usage-count yes; }

common { syncer { rate 100M; } }

resource drbd0 {

protocol C;

startup {

wfc-timeout 20;

degr-wfc-timeout 10;

# become-primary-on both; # Enable this *after* initial testing

}

net {

cram-hmac-alg sha1;

shared-secret "megaSeCrEt";

allow-two-primaries;

ping-timeout 20;

}

on node1 {

device /dev/drbd0;

disk /dev/sdb1;

address 192.168.0.1:7789;

meta-disk internal;

}

on node2 {

device /dev/drbd0;

disk /dev/mapper/vg-home;

address 192.168.0.2:7789;

meta-disk internal;

}

disk {

fencing resource-and-stonith;

no-disk-flushes;

no-md-flushes;

}

handlers {

outdate-peer "/sbin/obliterate"; # We'll get back to this.

}






man drbd.confのより正確で完全な説明:)



7.両方のノードで、入力します

#modprobe drbd

#drbdadm create-md drbd0

#drbdadm attach drbd0

#drbdadm connect drbd0



8.次に、2番目のノード(近くにサイトがあり、新しいセクションにアップロードする必要がある場合があります)

#drbdadm---overwrite-data-of-peerプライマリdrbd0

そして再起動

#/ etc / init.d / drbd restart

デフォルトでは同期速度が非常に遅いため、サービスが正常に起動して設定から設定を取得するために再起動が必要です...



9.このように同期を確認できます

#watch cat / proc / drbd



今、FSをする時間です



OCFS2



ocfs2を使用する理由

コアにあるからです。

なぜgfs2ではありませんか?

カーネル内にありますが、ファイルを削除するときに使用しようとすると、デッドロックになります

(最初はそれを使用する試みがありましたが、はい、それは生産の準備ができていないことを自分のスキンで経験した後、開発者のウェブサイトで繰り返し言及され、:( ocfs2が選択されました)

なぜgfs1ではありませんか?

当時、カーネル2.6.27ではサポートされていませんでしたが、機能しませんでした...



1.カーネルに含めることを忘れないでください

->ファイルシステム

-> OCFS2ファイルシステムのサポート(実験的)

同様にdlm



2.バグシルの最新のebuildを探しています

bugs.gentoo.org/show_bug.cgi?id=193249



3.入れます

#emerge ocfs2-tools



4. gfs2で実行する必要があるものと比較して、最も単純な構成(再び両方のノードで)

/etc/ocfs2/cluster.conf

node:

ip_port = 7777

ip_address = 192.168.0.1

number = 0

name = node1

cluster = ocfs2



node:

ip_port = 7777

ip_address = 192.168.0.2

number = 1

name = node2

cluster = ocfs2



cluster:

node_count = 2

name = ocfs2







5.最初のノードでfsを作成します(このステップはdrbd部分で10mです)

#mkfs.ocfs2 -b 4K -C 32K -N 2 / dev / drbd0(ここでもクラスター名を追加してdlmを使用する必要があります)

(正確なコマンドは私の頭から飛び出しましたが、このようなものです...いつもの完全な情報としてmkfs.ocfs2)

2番目のメモでは、同期のためにフラッディングされます...



まとめ





ゆっくりとフォーマットした後。

結果のセクションを2番目のノードにマウントします



#mount / dev / drbd0 / home / site / www / -t ocfs2



(叙情的な余談、すべてのWebサーバーログなどは/ home / site / logsにあります。別のノードに転送することは意味がないため、/ home / site / wwwシンボリックリンクは/ home / siteで作成され、ノードによって異なる設定になります)



そして今、サイトをrsync'om backで埋めます...



6時間のサーバー同期の後、戦闘任務の準備が整いました。ノードによるWebサーバー要求の分散を行うことはほとんど問題ではありません...しかし、これは別の記事です)



PS忘れられない

#rc-update drbd defaultを追加

#rc-update add ocfs2 default



サービスを再起動する必要があるocfs2をフォーマットおよびマウントするときにZyが可能です...残念ながら、正確には覚えていません...

#/ etc / init.d / ocfs2 restart



それに対処する方法に関するZyyyの可能性のあるスプリットブレインの状況は、オフサイトに情報があり、

また、別のノードとの通信が失われた場合のdrbdのアクションについては言及していませんが、これはかなり具体的なことなので、ドキュメントですぐに読むことをお勧めします...



この記事が書かれた主なリンク



www.debian-administration.org/articles/578

oss.oracle.com/projects/ocfs2

www.netup.ru/articles.php?n=13

en.gentoo-wiki.com/wiki/HOWTO_Heartbeat_and_DRBD

www.drbd.org



All Articles