ホームページ » の仕方 » Ubuntuでシンプルファイルサーバー用にソフトウェアRAIDを設定する方法

    Ubuntuでシンプルファイルサーバー用にソフトウェアRAIDを設定する方法

    Eメールアラート機能で信頼性の高い、堅牢なセットアップが簡単なファイルサーバーが必要ですか。それを実現するためのUbuntu、ソフトウェアRAID、SaMBaの使い方を紹介します。.

    概要

    最近の流行にもかかわらず、すべてを「強力な」クラウドに移行しているにもかかわらず、自分の情報を他の人のサーバーに保存したくない場合や、毎回インターネットから必要なデータをダウンロードするのが不可能な場合があります。 )そのため、予算内でストレージソリューションの場所を決定する前に、Linuxでライセンス不要の構成を検討してください。.

    それでも、安く/無料にすることは「風に注意を払う」ことを意味するのではなく、そのために、ソフトウェアRAIDを使用することに加えて設定する必要がある構成に注意する点に注意します。信頼性に対する最高価格の比率.

    Filomenaによる画像Scalise

    ソフトウェアRAIDについて

    名前が示すように、これは専用ハードウェアカードを使用するのではなくソフトウェアで完全に行われるRAID(冗長アレイの安価なディスク)セットアップです。この専用カードはシステムの基本構成に追加されたプレミアムなので、そのようなことの主な利点はコストです。主なデメリットは基本的にパフォーマンスとある程度の信頼性です。そのようなカードには通常、冗長性計算に必要な計算を実行するための独自のRAM + CPU、パフォーマンス向上のためのデータキャッシング、および未書き込み操作をキャッシュに保存するオプションのバックアップバッテリー停電の場合には電力が回復した.

    ソフトウェアRAIDセットアップでは、システム全体のコストを削減するためにシステムのCPUパフォーマンスの一部を犠牲にして犠牲にしますが、今日のCPUではオーバーヘッドは比較的無視できます(特にこのサーバーを「ファイルサーバー」専用にする場合)。ディスクのパフォーマンスに関してはペナルティがあります…しかし、私はサーバーからのディスクサブシステムからのボトルネックに遭遇してそれがどれほど深刻であるかを指摘したことは一度もありません。 Tomのハードウェアガイド“ Tom's goes RAID 5”は古くからの話題ですが、私は個人的に参考として使っていますが、ソフトウェアRAIDのウィンドウズ実装について話しているのでベンチマークを参考にしてください。他のすべて、私はLinuxがはるかに優れていると確信しています:P).

    前提条件

    • 忍耐若い、これは長い読みです.
    • RAIDとは何か、それが何のために使われているのか知っていると仮定します。.
    • このガイドはUbuntu server9.10 x 64を使って書かれているので、Debianベースのシステムを使って作業することを前提としています。.
    • あなたは私がエディタプログラムとしてVIMを使っているのを見るでしょう、これは私がそれに慣れているという理由だけでです…あなたはあなたが望む他のエディタを使うことができます.
    • このガイドを書くために使ったUbuntuシステムは、disk-on-keyにインストールされていました。そうすることで私はRAIDアレイの一部としてsda1を使用することができたので、あなたの設定に応じて調整してください.
    • 作成するRAIDの種類に応じて、システムに少なくとも2つのディスクが必要になります。このガイドでは6台のドライブを使用しています.

    アレイを構成するディスクの選択

    罠を避けるための最初のステップは、その存在を知ることです(DuneのThufir Hawat).

    ディスクを選択することは軽視すべきではない重要なステップです、そして、あなたは本当にあなたのものの経験を利用してこの警告に注意するのが賢明でしょう:

    行う ではない アレイの作成には「コンシューマグレード」のドライブを使用し、「サーバグレード」のドライブを使用します。!!!!!!

    今、私はあなたの考えを知っています、我々は我々が安いに行くつもりであると言いませんでしたか?はい、私たちはしました、しかし、これはそうすることが無謀で正確に避けられるべき場所の1つです。魅力的な価格にもかかわらず、消費者向けグレードのハードドライブは、24/7の「オン」タイプの用途に使用するようには設計されていません。私を信頼してください、あなたは本当にあなたのためにこれを試みました。このようにセットアップした3台のサーバーのうち少なくとも4台のコンシューマーグレードドライブが(予算上の制約から)サーバーの最初の起動日から約1.5〜1.8年後に失敗しました。 RAIDはそれが仕事だったので、データの損失はありませんでしたが よく そして生き残った…このような瞬間は、システム管理者の平均寿命を短くします。サーバメンテナンスのための会社のダウンタイムは言うまでもありません(結局、より高品質のドライブよりもコストがかかる可能性があります)。.

    2つのタイプの間で失敗率に違いがないと言う人もいるかもしれません。しかし、これらの主張にもかかわらず、サーバーグレードのドライブには依然として高レベルのSMART制限があり、その背後にQAがあります(消費者向けドライブが発売されるとすぐに発売されないため)。だから私はまだあなたがアップグレードのために余分な$$$を分岐することを強くお勧めします.

    RAIDレベルの選択.

    利用可能なすべてのオプションに入るつもりはありませんが(これはRAIDウィキペディアのエントリに非常によく記載されています)、少なくともRAID 6以上を選ぶべきだと言うのは注目に値すると思います(使用します Linux RAID 10)。これは、ディスクに障害が発生すると、隣接するディスクに障害が発生する可能性が高くなり、それから、「2ディスク」障害が発生する可能性があるためです。さらに、大容量のドライブを使用する場合は、大容量のディスクの方がプラッタ表面のデータ密度が高いため、障害が発生する可能性が高くなります。 2T以降のIMHOディスクは常にこのカテゴリに入るので、注意してください。.

    割れてみましょう

    パーティションディスク

    Linux / GNUでは、ストレージのニーズに合わせてブロックデバイス全体を使用することができますが、システムに問題がある場合はディスクレスキューツールを使用しやすくなるため、パーティションを使用します。ここでは「fdisk」プログラムを使用していますが、2Tより大きいディスクを使用する場合は、partedのようにGPTパーティショニングをサポートするパーティショニングプログラムを使用する必要があります。.

    sudo fdisk / dev / sdb

    注意:パーティションタイプを変えずに配列を作ることが可能であることを私は観察しました、しかしこれはネット全体に記述された方法であるので私が従うつもりです(再びブロックデバイス全体を使うときこれは不要です).

    fdiskに入ると、キーストロークは次のようになります。

    n;新しいパーティション用
    入る
    p; 1次区画の場合
    入る
    1;パーティション数
    入る ;デフォルトを受け入れる
    入る ;デフォルトを受け入れる
    t;タイプを変更する
    fd;タイプを「Linux raid auto detect」に設定します(83h)。
    w;変更をディスクに書き込んで終了する

    アレイの一部となるすべてのディスクをすすいで繰り返します。.

    Linux RAID 10アレイの作成

    「を使用する利点Linux 「raid10」は、使用するときに「10」アレイを1つのディスクに作成できるという事実に加えて、非偶数台のディスクを利用してパフォーマンスと復元力をさらに高める方法を知っているということです。ステップ.

    最後のステップで準備したディスクから次のコマンドを発行してアレイを作成します。

    sudo mdadm - 作成/ dev / md0 - チャンク= 256 --level = 10 -p f2 --raid-devices = 5 / dev / sda1 / dev / sdb1 / dev / sdc1 / dev / sdd1 / dev / sde1 - - 冗長

    注意:表現はそれを2つに分割するという事実にもかかわらず、これはすべて1行にすぎません。.

    パラメータを分解しましょう。

    • “ -chunk = 256” - RAIDストライプが分割されるバイトのサイズ。このサイズは新規/大容量ディスクに推奨されます(このガイドの作成に使用された2Tドライブは、間違いなくそのカテゴリに含まれていました)。.
    • “ -level = 10” - を使用します Linux raid10(従来のRAIDが必要な場合は、何らかの理由で2つのアレイを作成してそれらを結合する必要があります).
    • “ -p f2” - 詳細については下記の注を参照してください“ 2”は配列がデータの2つのコピーを保持することを示します.

    注意:ディスク上の物理的なデータレイアウトが同じにならないため、「遠い」計画を使用します。これは、製造上の障害のためにドライブの1つのハードウェアが故障するという状況を克服するのに役立ちます(そして、あなたのもののように「これは私には起こらない」とは思わないでください)。 2つのディスクは製造元とモデルが同じで、同じ方法で使用されており、伝統的にデータを同じ物理的な場所に保存しているという事実により、データのコピーを保持するドライブが故障する危険があります。交換用のディスクが到着するまで、必要な復元力が得られません。 「遠い」計画では、コンピュータケース内で互いに近接していないディスクを使用することに加えて、コピードライブ上のまったく異なる物理的な場所にデータを配布します。より多くの情報はここと以下のリンクにあります。.

    アレイが作成されると、同期プロセスが開始されます。 (これにはしばらく時間がかかるかもしれませんが)伝統のために待つことを望むかもしれませんが、あなたはすぐに配列を使い始めることができます。.

    進行状況は次の方法で確認できます。

    watch -d cat / proc / mdstat

    mdadm.conf構成ファイルを作成します。

    Ubuntuは起動時にアレイを自動的にスキャンしてアクティブにすることを知っているだけであることが証明されていますが、完全を期して次のsysadminのためにファイルを作成します。あなたのシステムは自動的にファイルを作成するのではなく、あなたのRAIDセットのすべてのコンポーネント/パーティションを記憶しようとすることはシステム管理者の正気の腰です。この情報はmdadm.confファイルに保存することができ、保存する必要があります。フォーマットは複雑になることがありますが、幸いなことにmdadm -detail -scan -verboseコマンドの出力はそれを提供します。.

    注意「ほとんどのディストリビューションでは/ etc / mdadmではなく/ etc /にあるmdadm.confファイルを使用することを想定しています。私はこれを/etc/mdadm/mdadm.confとするのは「ubuntu-ism」だと思います。という事実のために あります ここでUbuntuを使用して、私たちはそれだけで行きます.

    sudo mdadm --detail --scan --verbose> /etc/mdadm/mdadm.conf

    重要!上記のコマンドの結果の構文が完全に正しくないため、新しく作成したファイルから1つの「0」を削除する必要があります(GNU / LinuxはまだOSではありません)。.

    この間違った設定が引き起こす問題を見たいと思えばスキャン" 調整を行う前に、この時点でコマンド:

    mdadm --examine --scan

    これを克服するには、ファイルを編集してください。 /etc/mdadm/mdadm.conf そして変更:

    メタデータ= 00.90

    読むには:

    メタデータ= 0.90

    実行中 mdadm - 検査 - スキャン コマンドはエラーなしで戻るようになりました.

    アレイ上のファイルシステム設定

    この例ではext4を使用しました。これは、私にとっては、前のext3ファイルシステムに精通していることを前提としているためです。.
    どのファイルシステムが自分のニーズに適しているかを調査するために時間を割くことをお勧めします。そのための良い出発点は、「どのLinuxファイルシステムを選択するべきか」という記事です。.

    sudo mkfs.ext4 / dev / md0

    注意:この場合、私は結果として得られる配列を分割しませんでした。なぜなら、要求しているパーティが少なくとも3.5Tの連続したスペースを要求したからです。そうは言っても、私はパーティションを作成したいのであれば、 "parted"のようなGPTパーティショニング対応ユーティリティを使用しなければならなかったでしょう.

    取り付け

    マウントポイントを作成します。

    sudo mkdir /メディア/ raid10

    注意:これは任意の場所にすることができ、上記は一例にすぎません.

    私達は「組み立てられた装置」を取り扱っているので ではない システムは実際には個々のディスク上のファイルシステムの一部を認識するため、マウントにはデバイス上にあるファイルシステムのUUIDを使用します(「linux fstabとはどのように動作するか」ガイドの他の種類のデバイスに推奨)。しようとする 間違って 直接マウントしてください。これを克服するために、マウントを試みる前にデバイスが「アセンブル」されるのを明示的に待ちたいのです。そして、その中でアセンブルされたアレイの名前(「md」)を使用します。 fstab これを達成するために.
    fstabファイルを編集します。

    sudo vim / etc / fstab

    そしてそれに次の行を追加してください。

    / dev / md0 / media / raid10 / ext4のデフォルト1 2

    注意例からマウント場所またはファイルシステムを変更した場合は、それに応じて上記を調整する必要があります。.

    システム起動をシミュレートするには、自動パラメータ(-a)を指定してmountを使用します。これで、設定が正しく機能し、システムの再起動時にRAIDデバイスが自動的にマウントされることがわかります。

    sudo mount -a

    これで、パラメータなしで「mount」コマンドでアレイがマウントされたことがわかります。.

    RAIDアレイの電子メールアラート

    ハードウェアRAIDアレイとは異なり、ソフトウェアアレイでは、何か問題が発生したときに知らせるためのビープ音が鳴り始めるコントローラはありません。したがって、Eメールアラートは、アレイ内の1つ以上のディスクに何らかの問題が発生したかどうかを確認するための唯一の方法になります。 最も重要なステップ.

    「GmailまたはSMTPを使用してLinuxで電子メール警告を設定する方法」ガイドに従い、完了したらここに戻ってRAID固有の手順を実行してください。.

    mdadmが電子メールを送信できることを確認します
    以下のコマンドは、mdadmに電子メールを1つだけ送信して閉じるように指示します。.

    sudo mdadm --monitor --scan --test --oneshot

    成功した場合は、アレイの状態を詳細に記載した電子メールを受信する必要があります。.

    起動時にEメールを送信するようにmdadm構成を設定します。
    絶対に必要というわけではありませんが、電子メール機能がまだ機能していること、およびアレイの状態を知らせるために、マシンから随時更新情報を入手することをお勧めします。この設定はスタートアップにのみ影響するので(サーバー上には多くはありません)、Eメールに圧倒されることはおそらくないでしょう。.
    mdadm設定ファイルを編集します。

    sudo vim / etc / default / mdadm

    を追加 -テスト へのパラメータ DAEMON_OPTIONS 以下のようになります。

    DAEMON_OPTIONS = " - syslog --test"

    あなたは「ループの中に」いることを確認するためだけにマシンを再起動することができますが、それは必須ではありません.

    Sambaの設定

    SaMBaをLinuxサーバにインストールすると、Windowsファイルサーバのように動作します。そのため、Linuxサーバー上でホストしているデータをWindowsクライアントで利用できるようにするために、SaMBaをインストールして構成します。.
    SaMBaのパッケージ名は、ファイル共有に使用されているMicrosoftのプロトコルであるSMB(Service Message Block)に問題があることに注意してください。.

    このガイドでは、サーバーはテスト目的で使用されているので、その共有へのアクセスを有効にします。 なしで パスワードが必要な場合は、セットアップが完了したら、アクセス許可をセットアップする方法をもう少し詳しく調べてください。.

    また、ファイルの所有者になる非特権ユーザーを作成することをお勧めします。この例では、このタスク用に作成した "geek"ユーザーを使用します。ユーザーを作成し、所有権と権限を管理する方法についての説明は、「Ubuntu Server 9.10で新しいユーザーを作成する」および「Linuxでユーザーとグループを管理するための初心者用ガイド」のガイドにあります。.

    Sambaをインストールします。

    aptitude install samba

    samba設定ファイルを編集します。

    sudo vim /etc/samba/smb.conf

    ファイルに以下を追加することによってマウントポイント「/ media / raid10 / general」へのアクセスを許可する「general」という共有を追加します。.

    [一般]
    パス= / media / raid10 / general
    ユーザー=オタクを強制する
    力グループ=オタク
    読み取り専用=いいえ
    マスク作成= 0777
    ディレクトリマスク= 0777
    ゲストのみ=はい
    guest ok =はい

    上記の設定は共有をアドレス可能にします なしで 誰にでも使えるパスワードで、ファイルのデフォルトの所有者をユーザー「geek」にします。.

    参考までに、このsmb.confファイルは作業中のサーバーから取得したものです。.

    設定を有効にするために、sambaサービスを再起動します。

    sudo /etc/init.d/samba restart

    終わったらあなたは テストパーム sambaサーバーに適用された設定を見るためのコマンド.
    これで、サーバーはどのウィンドウボックスからでもアクセス可能になります。

    \ server-namegeneral

    トラブルシューティング

    あなたが問題を解決する必要があるとき、またはディスクがアレイで失敗したとき、私はmdadmチートシートを参照することを提案します(それは私がしていることです…).

    通常、ディスクに障害が発生した場合は、アレイからディスクを「取り外し」、マシンをシャットダウンし、故障したドライブを交換用のドライブと交換し、適切なディスクを作成したら新しいドライブをアレイに「追加」する必要があります。必要に応じてその上にレイアウト(パーティション).

    それが終わったら、アレイが再構築されていることを確認して、進行状況を確認します。

    watch -d cat / proc / mdstat

    がんばろう! :)

    参考文献:
    mdadmチートシート
    RAIDレベルが故障する
    Linux RAID 10の説明
    mdadmコマンドのマニュアルページ
    mdadm設定ファイルのマニュアルページ
    パーティション制限


    ソフトウェアRAIDを使用しても大した費用はかかりません…ただあなたの声;-)