大容量ファイル(〜16 GB)をすばやく転送する方法

大容量ファイル(〜16 GB)をすばやく転送する方法

80サーバーのあるマウントポイントから別のマウントポイントに大容量アーカイブ(〜16 GB)をすばやく転送する方法は?マウントポイントは別のパーティションにあります。ループでrsyncを使用してansible(-f 100オプションを使用)とbashスクリプトを試しましたが、どちらの方法も非常に遅くエレガントに見えませんでした。

ベストアンサー1

インストールしますPDSHpdshそして、すべてのサーバー(または選択した個々のホストまたはサーバーグループ)で並列にコマンドを実行できるように構成します。/etc/性別文書)。

たとえば、インストールされたらpdsh(異常なデフォルトのrshの代わりに)sshを使用するように設定し、allすべてのサーバーを含むグループを定義します。

pdsh -g all mv /old /new |& tee /tmp/pdsh.log

lessなどを使用してログファイルを表示したり、pdshユーティリティを使用してホストごとに1つのセクションの形式を適切に指定したりできますdshbak

dshback /tmp/pdsh.log

各出力行には、元のホスト名が接頭辞で付けられます(これは、dshbakホスト名で出力をグループ化するために使用されます)。

# pdsh -g all uptime
hanuman:  22:24:53 up 60 days,  1:38,  8 users,  load average: 0.05, 0.03, 0.05
indra:  22:24:16 up 14 days, 25 min,  3 users,  load average: 0.22, 0.40, 0.44
ganesh:  22:24:53 up 49 days,  7:56,  6 users,  load average: 0.73, 0.79, 0.79
kali:  22:25:05 up 3 min,  0 users,  load average: 0.01, 0.03, 0.02

pdshpdcpまた、複数のサーバーにファイルを並列にコピーするのに便利なコマンドも含まれています。たとえば、/etc/genderslocalhostからすべてのサーバーにコピーします。

pdcp -g all /etc/genders /etc/

pdshもともとHPCクラスタで使用するように設計されていましたが、Webサーバーファーム、レプリケートされたデータベースサーバーなどを含むすべてのサーバーグループでも同様に役立ちます。ここでは、サーバーグループにランダムなラベルを割り当てる機能が便利です。たとえば、特定のシステムグループにweb、、mysqlとラベルを付けて、dnsに入れますall

他にもいくつかのクラスタSSHツールがありますが、私の経験では、pdshこのツールが使用するのが最も簡単で構成も簡単です。

Puppet、Ansibleなどは大規模な展開と更新に適しており、pdshは大規模なコマンドラインサーバーの管理に適しています。

おすすめ記事