LFCS #6: LinuxでRAIDデバイスとしてパーティションを組み立てる方法
〈strong〉Linux Foundation〈/strong〉は、システム管理者がパフォーマンスベースの試験を通じてLinuxシステムの全体的な運用サポートを実行できることを示すための光り輝く機会である〈strong〉LFCS〈/strong〉(Linux Foundation Certified Sysadmin)認定を開始しました:システムサポート、第一レベルの診断および監視、必要に応じて他のサポートチームへの問題のエスカレーション。
このシリーズは「LFCS(Linux Foundation Certified Sysadmin)パート1から33までの準備」と題され、以下のトピックを扱います:
| いいえ | タイトル |
|---|---|
| 第1部 | Linuxでファイルを操作するための‘sed’コマンドの使い方 |
| 第2部 | LinuxでVi/Vimをインストールして使用する方法 |
| 第3部 | Linuxでファイルとディレクトリを圧縮し、ファイルを見つける方法 |
| 第4部 | Linuxでストレージデバイスをパーティション分割する方法 |
| 第5部 | Linuxでファイルシステム(SambaおよびNFS)をマウントする方法 |
| 第6部 | RAIDデバイスとしてパーティションを組み立て、システムバックアップを作成する方法 |
| 第7部 | システム起動プロセスとサービスの管理(SysVinit、Systemd、およびUpstart) |
| 第8部 | ユーザーとグループの管理、ファイル権限、およびsudoアクセスの方法 |
| 第9部 | Yum、RPM、Apt、Dpkg、Aptitude、およびZypperを使用したLinuxパッケージ管理 |
| 第10部 | 基本的なシェルスクリプトとファイルシステムのトラブルシューティングを学ぶ |
| 第11部 | vgcreate、lvcreate、およびlvextendコマンドを使用したLVMの管理と作成方法 |
| 第12部 | インストールされたヘルプドキュメントとツールを使用してLinuxを探求する方法 |
| 第13部 | GRUB(グランドユニファイドブートローダー)の構成とトラブルシューティングの方法 |
| 第14部 | Linuxプロセスのリソース使用状況を監視し、ユーザーごとにプロセス制限を設定する |
| 第15部 | Linuxシステムでカーネルランタイムパラメータを設定または変更する方法 |
| 第16部 | LinuxにおけるSELinuxまたはAppArmorを使用した必須アクセス制御の実装 |
| 第17部 | ユーザーとグループのためのアクセス制御リスト(ACL)およびディスククォータの設定方法 |
| 第18部 | ネットワークサービスのインストールとブート時の自動起動の設定 |
| 第19部 | 匿名ログインを許可するFTPサーバーの設定に関する究極のガイド |
| 第20部 | 基本的な再帰的キャッシングDNSサーバーを設置し、ドメインのゾーンを設定する |
| 第21部 | MariaDBデータベースサーバーのインストール、セキュリティ、およびパフォーマンスチューニングの方法 |
| 第22部 | ファイルシステム共有のためのNFSサーバーのインストールと構成方法 |
| 第23部 | SSL証明書を使用した名前ベースの仮想ホスティングでApacheをセットアップする方法 |
| 第24部 | Linuxでサービスへのリモートアクセスを有効にするIptablesファイアウォールの設定方法 |
| 第25部 | Linuxをルーターに変えて静的および動的にトラフィックを処理する方法 |
| 第26部 | Cryptsetupツールを使用して暗号化されたファイルシステムとスワップを設定する方法 |
| 第27部 | システムの使用状況、停止、およびLinuxサーバーのトラブルシューティングをどのように監視するか |
| 第28部 | パッケージをインストールまたは更新するためのネットワークリポジトリの設定方法 |
| 第29部 | ネットワークのパフォーマンス、セキュリティ、およびトラブルシューティングの監査方法 |
| 第30部 | 仮想マシンとコンテナのインストールと管理方法 |
| 第31部 | プロジェクトを効率的に管理するためにGitの基本を学ぶ |
| 第32部 | LinuxにおけるIPv4およびIPv6アドレスの設定に関する初心者向けガイド |
| 第33部 | 初心者のためのUbuntuにおけるネットワークボンディングとブリッジの作成ガイド |
この投稿は第6部であり、33のチュートリアルシリーズの一部です。このパートでは、RAIDデバイスとしてパーティションを組み立て、LFCS認定試験に必要なシステムバックアップを作成および管理する方法について説明します。
LinuxにおけるRAIDの理解
独立ディスクの冗長アレイ(RAID)として知られる技術は、冗長性を提供し、ディスクへの読み書き操作のパフォーマンスを向上させるために、複数のハードディスクを単一の論理ユニットに統合するストレージソリューションです。
しかし、実際の耐障害性とディスクI/O性能は、ハードディスクがどのように設定されてディスクアレイを形成するかに依存します。利用可能なデバイスと耐障害性/性能のニーズに応じて、異なるRAIDレベルが定義されます。
各RAIDレベルの詳細な説明については、次のRAIDシリーズの記事を参照できます。
Linuxにmdadmをインストールする
私たちがソフトウェアRAIDを作成、組み立て、管理、監視するために選んだツールは、mdadm(複数ディスク管理者の略称)と呼ばれています。
$ sudo apt install mdadm [On Debian, Ubuntu and Mint]
sudo yum install mdadm [On RHEL/CentOS/Fedora and Rocky/AlmaLinux]
sudo zypper install mdadm [On OpenSUSE]
RAIDデバイスとしてのパーティションの組み立て
既存のパーティションをRAIDデバイスとして組み立てるプロセスは、以下のステップで構成されます。
1. mdadmを使用して新しい配列を作成する
もしパーティションのいずれかが以前にフォーマットされていたり、他のRAIDアレイの一部であった場合、新しいアレイの作成を確認するように求められます。
重要なデータが失われるのを避けるために必要な予防措置を講じたと仮定すると、yを入力してEnterを押しても安全です。
# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
2. 配列作成状況を確認する
配列作成状態を確認するために、RAIDタイプに関係なく、次のコマンドを使用します。これらは、上記のRAID0を作成しているときと同様に有効であり、下の画像に示すようにRAID5の設定中にも適用されます。
# cat /proc/mdstat
or
mdadm --detail /dev/md0 [More detailed summary]
3. RAIDデバイスをフォーマットする
このシリーズの第4部で説明したように、ニーズや要件に応じてファイルシステムでデバイスをフォーマットしてください。
4. RAIDアレイサービスの監視
監視サービスに配列を「監視する」よう指示します。mdadm --detail --scan の出力を/etc/mdadm/mdadm.conf(Debianおよびその派生)または/etc/mdadm.conf(CentOS/openSUSE)に次のように追加します。
# mdadm --detail --scan
# mdadm --assemble --scan [Assemble the array]
サービスがシステムブート時に開始されるように、次のコマンドをrootとして実行してください。
# systemctl start mdmonitor
systemctl enable mdmonitor
5. RAIDディスクの故障を確認する
RAID レベルで冗長性をサポートしている場合、必要に応じて故障したドライブを交換します。ディスクアレイのデバイスが故障した場合、最初にアレイを作成したときに予備デバイスが追加されていれば、再構築が自動的に開始されます。
そうでなければ、システムに別の物理ドライブを手動で接続して実行する必要があります。
# mdadm /dev/md0 --add /dev/sdX1
/dev/md0 は問題が発生した配列であり、/dev/sdX1 は新しいデバイスです。
6. 動作する配列を分解する
デバイスを使用して新しい配列を作成する必要がある場合は、これを行う必要があるかもしれません - (オプションのステップ)。
# mdadm --stop /dev/md0 # Stop the array
mdadm --remove /dev/md0 # Remove the RAID device
mdadm --zero-superblock /dev/sdX1 # Overwrite the existing md superblock with zeroes
7. メールアラートを作成する
有効なメールアドレスまたはシステムアカウントを設定してアラートを送信することができます(mdadm.confにこの行があることを確認してください)。 – (オプションの手順)
MAILADDR root
この場合、RAID監視デーモンが収集したすべてのアラートは、ローカルのrootアカウントのメールボックスに送信されます。そのようなアラートの一例は以下のようになります。
注意: このイベントはステップ5の例に関連しており、デバイスが故障としてマークされた際に、mdadmによって予備デバイスが自動的にアレイに組み込まれました。それにより、健康な予備デバイスがなくなったため、警告が表示されました。
LinuxにおけるRAIDレベルの理解
ここでは一般的なRAIDレベルの簡単な概要を紹介します。
RAID 0
配列の総サイズは、最小のパーティションのサイズのn倍です。ここでnは配列内の独立したディスクの数(少なくとも2つのドライブが必要です)です。次のコマンドを実行して、パーティション/dev/sdb1と/dev/sdc1を使用してRAID 0配列を構成します。
# mdadm --create --verbose /dev/md0 --level=stripe --raid-devices=2 /dev/sdb1 /dev/sdc1
一般的な用途: パフォーマンスがフォールトトレランスよりも重要なリアルタイムアプリケーションをサポートするセットアップ。
RAID 1(ミラーリングとも呼ばれる)
合計配列サイズは最小パーティションのサイズと等しくなります(少なくとも2つのドライブが必要です)。次のコマンドを実行して、パーティション/dev/sdb1および/dev/sdc1を使用してRAID 1配列を構成してください。
# mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb1 /dev/sdc1
一般的な使用法: オペレーティングシステムや重要なサブディレクトリのインストール、例えば/homeなど。
RAID 5(パリティを持つドライブとも呼ばれる)
総配列サイズは、(n – 1) 倍の最小パーティションサイズになります。(n-1) の「失われた」スペースは、パリティ(冗長性)計算に使用されます(少なくとも3台のドライブが必要です)。
故障が発生した場合に置き換えるための予備デバイス(この場合は/dev/sde1)を指定できることに注意してください。次のコマンドを実行して、パーティション/dev/sdb1、/dev/sdc1、/dev/sdd1、および/dev/sde1を予備として使用してRAID 5アレイを構成します。
# mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sdb1 /dev/sdc1 /dev/sdd1 --spare-devices=1 /dev/sde1
一般的な用途: ウェブおよびファイルサーバー。
RAID 6(ダブルパリティを備えたドライブ)
配列の総サイズは (n*s)-2*s であり、ここで n は配列内の独立したディスクの数、s は最小のディスクのサイズです。問題が発生した際に故障している部分を置き換えるために、予備デバイス(この場合は /dev/sdf1)を指定することができることに注意してください。
RAID 6 アレイを作成するために、次のコマンドを実行します。使用するパーティションは /dev/sdb1, /dev/sdc1, /dev/sdd1, /dev/sde1, /dev/sdf1 です。これらは予備として使用されます。
# mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde --spare-devices=1 /dev/sdf1
一般的な用途: 大容量と高可用性要件を持つファイルおよびバックアップサーバー。
RAID 1+0(別名ミラーのストライプ)
総配列サイズは、RAID 0 と RAID 1 の公式に基づいて計算されます。これは RAID 1+0 が両者の組み合わせであるためです。まず、各ミラーのサイズを計算し、その後ストライプのサイズを計算します。
障害が発生した場合には、故障した部品を置き換えるために予備のデバイス(この場合は/dev/sdf1)を指定できることに注意してください。次のコマンドを実行して、パーティション/dev/sdb1、/dev/sdc1、/dev/sdd1、/dev/sde1、および/dev/sdf1を予備として使用してRAID 1+0アレイを構成します。
# mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sd[b-e]1 --spare-devices=1 /dev/sdf1一般的な用途: 高速I/O操作を必要とするデータベースおよびアプリケーションサーバー。
Linuxでのシステムバックアップの作成と管理
すべての利点を持つRAIDはバックアップの代わりにはならない!必要ならば、黒板に1000回書いても良いので、常にその考えを念頭に置くようにしてください。
始める前に、システムバックアップに対するひとつの万能な解決策はないことを言及する必要がありますが、バックアップ戦略を計画する際に考慮すべきいくつかの点があります。
- あなたのシステムは何に使いますか?(デスクトップですか、それともサーバーですか?もし後者の場合、最も重要なサービスは何ですか - それらの設定を失うことは本当に大変なことですか?)
- システムのバックアップはどのくらいの頻度で取る必要がありますか?
- バックアップしたいデータ(例:ファイル、ディレクトリ、データベースのダンプ)は何ですか?また、大きなファイル(音声ファイルや動画ファイルなど)を本当にバックアップする必要があるかどうかも考慮した方が良いでしょう。
- そのバックアップはどこに(物理的な場所と媒体として)保存される予定ですか?
1. ddコマンドを使用したバックアップドライブ
ddコマンドを使用して、全ドライブをバックアップします。ハードディスク全体またはパーティションを、任意の時点での正確なイメージを作成することでバックアップできます。この方法は、デバイスがオフラインであり、マウントされておらず、I/O操作にアクセスしているプロセスがない場合に最も効果的です。
このバックアップ方法の欠点は、実際のデータがディスクやパーティションのごく小さな割合を占めている場合でも、イメージがディスクまたはパーティションと同じサイズになることです。
例えば、20 GBのパーティションで、実際には10%だけが使用されている場合、イメージファイルのサイズは依然として20 GBになります。言い換えれば、バックアップされるのは実際のデータだけでなく、パーティション全体です。この方法は、デバイスの正確なバックアップが必要な場合に検討する価値があります。
パーティションイメージの作成
# dd if=/dev/sda of=/system_images/sda.img
OR
--------------------- Alternatively, you can compress the image file ---------------------
dd if=/dev/sda | gzip -c > /system_images/sda.img.gz
パーティションイメージの復元
# dd if=/system_images/sda.img of=/dev/sda
OR
gzip -dc /system_images/sda.img.gz | dd of=/dev/sda
2. tar コマンドを使用してファイルをバックアップする
tarコマンドで特定のファイル/ディレクトリのバックアップを取る方法は、このシリーズのパート3ですでに説明されました。特定のファイルやディレクトリ(設定ファイル、ユーザーのホームディレクトリなど)のコピーを保持する必要がある場合は、この方法を検討してください。
2. rsync コマンドを使用してファイルのバックアップと同期を行う
rsyncコマンドを使用してファイルを同期させます。rsyncは多機能なリモート(およびローカル)ファイルコピーツールです。ネットワークドライブへのバックアップやファイルの同期が必要な場合、rsyncがおすすめです。
ローカルディレクトリを2つ同期させる場合でも、ローカルファイルシステムにマウントされたリモートディレクトリとの場合でも、基本的な構文は同じです。
二つのローカルディレクトリの同期
# rsync -av source_directory destination directory
ここで、-a はサブディレクトリ(存在する場合)に再帰し、シンボリックリンク、タイムスタンプ、権限、元の所有者/グループを保持し、-v は冗長出力を表示します。
さらに、データ転送のセキュリティを向上させたい場合は、rsyncの上にsshを使用することができます。
SSHを介してローカルとリモートのディレクトリを同期する
# rsync -avzhe ssh backups root@remote_host:/remote_directory/
この例では、バックアップディレクトリをローカルホスト上でリモートホストの/root/remote_directoryの内容と同期させます。
ここで、-hオプションはファイルサイズを人間に読みやすい形式で表示し、-eフラグはSSH接続を示すために使用されます。
SSHを介してリモートからローカルディレクトリを同期する
この場合、前の例からソースディレクトリとデスティネーションディレクトリを入れ替えてください。
# rsync -avzhe ssh root@remote_host:/remote_directory/ backups
これらはrsyncの使用例の中で、最も頻繁に遭遇する可能性のある3つの例に過ぎないことに注意してください。rsyncコマンドのさらに多くの例や使い方については、以下の記事をご覧ください。
要約
システム管理者として、あなたはシステムが可能な限り良好に動作することを確保する必要があります。もしあなたが十分に準備されていて、RAIDなどのストレージ技術や定期的なシステムバックアップによってデータの整合性がしっかりとサポートされているなら、安全であると言えるでしょう。
LFCS eBookは現在購入可能です。今すぐコピーを注文して、認定Linuxシステム管理者になるための旅を始めましょう!
| 商品名 | 価格 | 買う |
|---|---|---|
| Linux財団のLFCS認定試験準備ガイド | 19.99ドル | [今すぐ購入] |
最後になりますが、以下のリンクを使用して試験バウチャーを購入していただけると、小さな手数料を得ることができ、この本を最新の状態に保つ助けになりますので、ご検討ください。
質問、コメント、またはこの記事をどのように改善できるかについてさらにアイデアがある場合は、下に自由にお書きください。また、このシリーズをあなたのソーシャルネットワークのプロフィールを通じて共有することもぜひご検討ください。






