質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
RAID

RAIDは、複数のハードディスクにデータを分散して冗長性を向上させる技術。ディスク障害時のユーザデータの再生を可能にするディスクアレイの代表的な実装形態です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

Q&A

解決済

1回答

355閲覧

Ubuntu で RAID1 を構築しても再起動後見えなくなる

sanokoyuki

総合スコア12

RAID

RAIDは、複数のハードディスクにデータを分散して冗長性を向上させる技術。ディスク障害時のユーザデータの再生を可能にするディスクアレイの代表的な実装形態です。

Ubuntu

Ubuntuは、Debian GNU/Linuxを基盤としたフリーのオペレーティングシステムです。

0グッド

0クリップ

投稿2024/01/31 02:57

実現したいこと

  • Ubuntu 22.04.3 LTS で再起動後も RAID のドライブを使用したい。

前提

Ubuntu 22.04.3 LTS を使ってサーバを立てています。
用途としてはオンプレミスの Web サーバです。
NVMe 512GB の SSD にシステムを入れて、データバックアップ用に 1TB HDD 二台でソフトウェア RAID で RAID1 を組んで運用しようとしています。

# ドライブの構成 /dev/sda /dev/sdb /dev/nvme0n1

shell

1$ lsblk(部分) 2sda 8:0 0 931.5G 0 disk 3└─sda1 8:1 0 931.5G 0 part 4sdb 8:16 0 931.5G 0 disk 5└─sdb1 8:17 0 931.5G 0 part 6sr0 11:0 1 1024M 0 rom 7nvme0n1 259:0 0 476.9G 0 disk 8├─nvme0n1p1 259:1 0 512M 0 part /boot/efi 9└─nvme0n1p2 259:2 0 476.4G 0 part /var/snap/firefox/common/host-hunspell

RAID は以下の方法で構築しマウントもできデータも書き込みできました。

shell

1$ sudo parted --script /dev/sda "mklabel gpt" 2$ sudo parted --script /dev/sdb "mklabel gpt" 3$ sudo parted --script /dev/sda "mkpart primary 0% 100%" 4$ sudo parted --script /dev/sdb "mkpart primary 0% 100%" 5$ sudo parted --script /dev/sda "set 1 raid on" 6$ sudo parted --script /dev/sdb "set 1 raid on" 7$ sudo mdadm --create --verbose --force --assume-clean --level=raid1 --raid-devices=2 /dev/md0 /dev/sda /dev/sdb 8$ sudo mkfs.ext4 /dev/md0 9$ sudo mkdir /data 10$ sudo chmod 777 /data 11$ sudo chown root /data 12$ sudo chgrp root /data 13$ sudo mount /dev/md0 /data

その後一晩放置して再起動すると ディスク アプリで md0 を認識していません。

発生している問題・エラーメッセージ

再起動直後は ディスク アプリでも md0 を認識していません。
その後、再度

shell

1$ sudo mdadm --create --verbose --force --assume-clean --level=raid1 --raid-devices=2 /dev/md0 /dev/sda /dev/sdb 2$ sudo mount /dev/md0 /data

を実行すると、RAID は復活しますし、中のデータも残っています。

shell

1$ sudo cat /proc/mdstat 2Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 3md0 : active raid1 sdb[1] sda[0] 4 976630464 blocks super 1.2 [2/2] [UU] 5 bitmap: 0/8 pages [0KB], 65536KB chunk 6 7unused devices: <none>

このため RAID を UUID を利用してマウントしようとして /etc/fstab に記述してしまうと、Ubuntu の起動にも失敗してしまいます。
関係があるかはわかりませんが、RAID が有効になっている時は以下のようなメッセージが出ています。

shell

1$ sudo fdisk -l(部分) 234ディスク /dev/nvme0n1: 476.94 GiB, 512110190592 バイト, 1000215216 セクタ 5Disk model: PM9A1 NVMe Samsung 512GB 6単位: セクタ (1 * 512 = 512 バイト) 7セクタサイズ (論理 / 物理): 512 バイト / 512 バイト 8I/O サイズ (最小 / 推奨): 512 バイト / 512 バイト 9ディスクラベルのタイプ: gpt 10ディスク識別子: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX 11 12デバイス 開始位置 最後から セクタ サイズ タイプ 13/dev/nvme0n1p1 2048 1050623 1048576 512M EFI システム 14/dev/nvme0n1p2 1050624 1000214527 999163904 476.4G Linux ファイルシステム 15プライマリの GPT テーブルは破損しているようです、しかしバックアップテーブルは大丈夫のようですので、そちらを使用します。 16 17ディスク /dev/sda: 931.51 GiB, 1000204886016 バイト, 1953525168 セクタ 18Disk model: WDC WD10EZEX-75W 19単位: セクタ (1 * 512 = 512 バイト) 20セクタサイズ (論理 / 物理): 512 バイト / 4096 バイト 21I/O サイズ (最小 / 推奨): 4096 バイト / 4096 バイト 22ディスクラベルのタイプ: gpt 23ディスク識別子: XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX 24 25デバイス 開始位置 最後から セクタ サイズ タイプ 26/dev/sda1 2048 1953523711 1953521664 931.5G Linux RAID 27プライマリの GPT テーブルは破損しているようです、しかしバックアップテーブルは大丈夫のようですので、そちらを使用します。 282930 31$ sudo gdisk -l /dev/sda ( sdb でも同様) 32GPT fdisk (gdisk) version 1.0.8 33 34Caution! After loading partitions, the CRC doesn't check out! 35Warning! Main partition table CRC mismatch! Loaded backup partition table 36instead of main partition table! 37 38Warning! One or more CRCs don't match. You should repair the disk! 39Main header: OK 40Backup header: OK 41Main partition table: ERROR 42Backup partition table: OK 43 44Partition table scan: 45 MBR: protective 46 BSD: not present 47 APM: not present 48 GPT: damaged 49 50**************************************************************************** 51Caution: Found protective or hybrid MBR and corrupt GPT. Using GPT, but disk 52verification and recovery are STRONGLY recommended. 53**************************************************************************** 54Disk /dev/sda: 1953525168 sectors, 931.5 GiB 55Model: WDC WD10EZEX-75W 56Sector size (logical/physical): 512/4096 bytes 57Disk identifier (GUID): XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX 58Partition table holds up to 128 entries 59Main partition table begins at sector 2 and ends at sector 33 60First usable sector is 34, last usable sector is 1953525134 61Partitions will be aligned on 2048-sector boundaries 62Total free space is 3437 sectors (1.7 MiB) 63 64Number Start (sector) End (sector) Size Code Name 65 1 2048 1953523711 931.5 GiB FD00 primary

ただ、起動直後で RAID が有効でない時は「プライマリの GPT テーブルは破損しているようです…」が出てこず、「 GPT: damaged 」の部分も「 GPT: present 」となっているので、この部分が問題ではないかと思います。

試したこと

一度 GParted で USB ブートし、すべてのドライブを初期化し未割当状態にし、再度 Ubuntu を再インストールしましたが症状は変わらずでした。サーバ自体は購入してあまり日が経っておらず故障とも思えません。

補足情報(FW/ツールのバージョンなど)

Ubuntu 22.04.3 LTS

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanokoyuki

2024/02/01 04:11

setoppu さま、ご回答ありがとうございます。 記載に漏れていましたが、そのページを参考にしてやったので、この部分はやっていました。 それでひょっとすると忘れていたかもと思って確認をしたのですが、 最初に設定した時には ```/etc/mdadm/mdadm.conf ARRAY /dev/md0 metadata=1.2 name=SVNAME:0 UUID=XXXXXXXX... ``` だったのが ```shell $ sudo mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 name=SVNAME:0 UUID=YYYYYYYY... ``` と別の UUID が出てきました。 ひょっとして書き間違えたかな?と思って再度訂正し再起動をかけてもやはり認識をせず、今度は ```shell $ sudo mdadm --detail --scan ARRAY /dev/md0 metadata=1.2 name=SVNAME:0 UUID=ZZZZZZZZ... ``` となりやはり再起動するたびに UUID が変わってしまいます。 それで、今度は別のパソコンをで同様の構成にし構築したところ、同様の手順で作業しましたがこちらは問題なく再起動でも認識をします。 不思議なことにこちらは mdadm.conf の設定をしなくても認識をします。 またこちらも sudo fdisk -l で上記の「プライマリの GPT テーブルは破損しているようです、しかしバックアップテーブルは大丈夫のようですので、そちらを使用します。」メッセージが表示されています(ただし再起動後も認識し問題なく使用できています)。 実は元のサーバも一度構築した際には問題なくできていたのですが、もう一度検証のために 0 から作り直したところ、このようなエラーが出ています。
sanokoyuki

2024/02/01 12:37

もう一度、RAID を再構築しようとして以下のコマンドを実行してみましたところです $ sudo mdadm --create --verbose --level=raid1 --raid-devices=2 /dev/md0 /dev/sda /dev/sdb mdadm: partition table exists on /dev/sda mdadm: partition table exists on /dev/sda but will be lost or meaningless after creating array mdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90 mdadm: partition table exists on /dev/sdb mdadm: partition table exists on /dev/sdb but will be lost or meaningless after creating array mdadm: size set to 976630464K mdadm: automatically enabling write-intent bitmap on large array なにが悪いのか…
setoppu

2024/02/03 18:01

やったことないからなんとも…ですが、 『デバイスにパーティションを作成』で記載されてるように 容量全部使ったパーティション割当してからならどうでしょう? ファイルシステムの作成まで必要かは不明ですが。 https://zenn.dev/devcat/scraps/ba2646431acbc6 パーティションにraidフラグを付与する とかあるらしい??
sanokoyuki

2024/02/04 14:27

setoppu さま、ご回答ありがとうございます。 フラグを付与する…というのが $ sudo parted --script /dev/sda "mklabel gpt" $ sudo parted --script /dev/sdb "mklabel gpt" $ sudo parted --script /dev/sda "mkpart primary 0% 100%" $ sudo parted --script /dev/sdb "mkpart primary 0% 100%" $ sudo parted --script /dev/sda "set 1 raid on" $ sudo parted --script /dev/sdb "set 1 raid on" この部分だと思います。 RAID を作り直す際に $ sudo mdadm --zero-superblock という作業をしないとダメなようですが、それをしなかったのが原因かもしれません。 それが呪いのようにつきまとってるのかもしれません。 その後、実は無事復活しました。 正直あれこれしすぎてなぜ復活したのか原因がわかりません。 再度構築しなおして動かなくなるのも怖いのでこれで終わりにします。 やったことは * parted コマンドではなく GParted アプリで デバイス → パーティションテーブルの作成 → ディスク アプリで ディスクを初期化 → 既存のデータをゼロで上書きする(スロー)、新しいシステムと 2TB を超えるハードディスクで互換 (GPT) * ディスク アプリで ディスクを初期化 → 既存のデータをゼロで上書きする(スロー)、新しいシステムと 2TB を超えるハードディスクで互換 (GPT) * すごく時間がかかるので、ちゃんと動きますようにと祈りながら寝た おそらくディスクアプリが効いたのではないかと思います。 最終的には問題なく動作しています。 fdisk -l でもエラーは出ていません。 結局何が解決につながったのかわからずなので、同じようなトラブルが発生した場合に参考になるかどうかはわかりませんが…。 色々とご回答いただきありがとうございました。 またこの質問を見られて(回答はなかったものの)思案していただいた皆様ありがとうございました。 またなにかありましたらよろしくお願いします。
sanokoyuki

2024/02/04 14:33

×:デバイス → パーティションテーブルの作成 → ディスク アプリで ディスクを初期化 → 既存のデータをゼロで上書きする(スロー)、新しいシステムと 2TB を超えるハードディスクで互換 (GPT) ○:デバイス → パーティションテーブルの作成 → macOS や NTFS 等で作成 の間違いです。
guest

回答1

0

自己解決

その後、実は無事復活しました。
正直あれこれしすぎてなぜ復活したのか原因がわかりません。
再度構築しなおして動かなくなるのも怖いのでこれで終わりにします。

やったことは

  • parted コマンドではなく GParted アプリで

デバイス → パーティションテーブルの作成 → macOS や NTFS 等で作成し、その後で再度 GPT で作成しなおし。

  • ディスク アプリで ディスクを初期化 → 既存のデータをゼロで上書きする(スロー)、新しいシステムと 2TB を超えるハードディスクで互換 (GPT)
  • すごく時間がかかるので、ちゃんと動きますようにと祈りながら寝た

おそらくディスクアプリが効いたのではないかと思います。
最終的には問題なく動作しています。
fdisk -l でもエラーは出ていません。
結局何が解決につながったのかわからずなので、同じようなトラブルが発生した場合に参考になるかどうかはわかりませんが…。

色々とご回答いただきありがとうございました。
またこの質問を見られて(回答はなかったものの)思案していただいた皆様ありがとうございました。
またなにかありましたらよろしくお願いします。

投稿2024/02/04 14:29

編集2024/02/04 14:35
sanokoyuki

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問