
私は 2 TB ハード ドライブを 2 台持っています (ブート/システム ドライブではありません)。それぞれに 1 つのパーティションがあり、Samba と共有しています。マウント ポイントは と にあり/mnt/drive01
ます/mnt/drive02
。
これらは、backup1 と backup2 という 2 つの samba 共有のパスでもあります。これらの共有が起動するとすぐに、ネットワーク内の他のマシンからの (大量の) データで埋められ始めます (一部のマシンは backup1 に書き込み、他のマシンは backup2 に書き込みますが、両方に書き込むマシンはありません)。
すべてが計画どおりに機能し、Samba に問題はありません。このサーバー (リモート ロケーション) は、停電などの場合に自動的に再起動するように構成されています。また、システム/ブート ドライブとして RAID1 に 2 つのドライブを配置し、サーバーが (ほぼ!) 常に少なくとも起動できるようにします。
問題は、システムが正常に起動しても、何らかの理由で 2 TB ハード ドライブの 1 つ (または両方) をマウントできない場合です。Samba は共有を開始します/mnt/drive01
が/mnt/drive02
、大容量ドライブはマウントされていないため、すべてのデータが実際にシステム ドライブに保存され、ドライブがいっぱいになり、システムが使用できなくなったり、ssh 経由でリモート アクセスできなくなったりします。
したがって、2 台の 2 TB ドライブのパーティションを に入力するのは得策ではないと思います/etc/fstab
。データ ドライブの 1 つが切断されている場合などに、起動時に問題が発生することに気付いたからです。サーバーは遠隔地にあり、「ドライブの準備ができていません。お待ちください。マウントをスキップするには S を押してください。手動で行うには M を押してください...」などの画面上のメッセージを修正するためにオペレーターの介入に頼ることができないため、この点も重要です。
そこで、起動後 1 分でデータ ドライブのマウントを試みる小さなスクリプトを用意し、これによって fstab 部分が修正されました。次は Samba です。
私が望んでいるのは、しばらくしてから Samba を起動する (問題なし) と同時に、2 つの共有を「動的に」有効または無効にすることです。したがって、たとえば、2 番目のデータ ドライブに障害が発生した場合、スクリプトは 1 番目のデータ ディスクのみをマウントでき、Samba はバックアップ 1 共有のみをアドバタイズします (データは 2 TB ディスク ドライブに書き込まれます)。他の共有 (マップされているバックアップ 2 /mnt/drive02
) はアドバタイズ/無効化されませんが、少なくとも 1 つの共有は実行されています (一部のマシンはそこにデータを投入できます)。
もちろん、簡単な方法は、両方のデータドライブがマウントされている場合にのみsambaを起動することですが、これはオール・オア・ナッシングの解決策です。
何か案は?
答え1
2つのオプションがあります。Sambaに別の共有がない場合は、upstartまたはsystemdを使用して、両方がマウントされたときにSambaを起動し、両方がアンマウントされたときに停止します。systemdの場合は、Requires=
スタンザそして新興企業とstart on mounted /dev/something
もう一つの方法は、起動スクリプトから samba を削除し、スクリプトを使用して起動することです。これらのオプションは、すでに実行した内容によって異なります。