web-dev-qa-db-ja.com

Linux raidは再起動後に消えます

Linuxでの私のトラブルシューティング能力は印象的ではありません。一方、私は非常によく指示に従うことができます。 Linux raidを備えたLinuxサーバーがあります。半年ほどは問題なく動作していましたが、その後停電して以来、同じ問題が発生しています。 raidを再構築した後、すべてのファイルがまだ残っているので、それは良いことです。サーバーを再起動すると、RAIDデバイスmd0が消えてしまいます。

pi@pinas:~ $ cat /proc/mdstat 
Personalities : 
unused devices: <none>

pi@pinas:~ $ ls /dev/md*
pi@pinas:~ $ 

私は ここの問題 を見つけました。私は他のいくつかのサイトも見て、すべて同じようなことを言っていました。私はwebminを使用してraidを作成し、mdadm.confは「見える」ように見えます。適切なものをインターネットで検索しているかどうか、または適切なログファイルを検索しているかどうかはわかりません。誰かアイデアはありますか?

よろしくお願いします。

***編集1

root@pinas:/home/pi# service mdadm start
Failed to start mdadm.service: Unit mdadm.service is masked.

Mdadmサービスが実行されているかどうか疑問に思っています。プロセスは現在システム上でアクティブではなく、ブート時に開始するように構成されているかどうか、どのように開始するか、またはブート時に開始するように構成するかを知る方法がわかりません。

***編集2

systemctl list-unit-files
[email protected]           static  
[email protected]             static  
mdadm-waitidle.service                 masked  
mdadm.service                          masked  
[email protected]                         static  
mdmonitor.service                      static  

私はこれを見つけました。これが悪いかどうかは正確にはわかりませんが、疑わしい見た目です。これはどうあるべきですか?それらのどれも有効化されているとは言えないので、そうすべきだと思います。何か案は?

***編集3

systemctl list-unit-files
[email protected]           static  
[email protected]             static  
mdadm-waitidle.service                 masked  
mdadm.service                          masked  
[email protected]                         static  
mdmonitor.service                      static  

dpkg-reconfigure mdadm
update-initramfs: deferring update (trigger activated)
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
update-rc.d: warning: start and stop actions are no longer supported; falling back to defaults
Processing triggers for initramfs-tools (0.120+deb8u3) ...

@telcoMが提案したコマンドを実行しました。これが出力です。私はそれらのコマンドを再インストールしてみましたが、それでも出力は同じです。

私はネット上の他のいくつかの同じような名前のトレッドを見てみましたが、これまでのところ、役立つと思われるものは何も見つかりませんでした。問題はサービスが起動時に開始されないことに関連していると思いますが、Linuxサービスでそれを修正する方法を知るのに十分な経験がありません。 @roaimaはinitramfsに問題があることを示唆しましたが、それを確認または修正する方法がわかりません。誰かアイデアはありますか?

***編集4

CREATE owner=root group=disk mode=0660 auto=yes
HOMEHOST <system>
MAILADDR root
ARRAY /dev/md/0  metadata=1.2 UUID=d3434dfc:2fb4792e:0b64f806:67e35ee3 name=raspberrypi:0
ARRAY /dev/md/0  metadata=1.2 UUID=40fb937f:870c7c13:46774666:87445bc5 name=pinas:0

これが私のmdadm.confファイルの出力です。最初にリストされた配列には正しい名前がないため、これは興味深いです...

5
Goff

マスクされていたため、サービスは開始されませんでした。 here は、マスクを解除する方法を見つけた方法です。次の問題は、mdadm-raidサービスがRAIDを開始していなかったことでした。 this は、起動時にraidを開始する方法でした。関連する投稿を見つけるには、「2017年7月31日午後7時49分」まで下を見ます。これは最善の解決策ではないかもしれませんが、10回の再起動後も毎回raidが開始されます。このスレッドに答えようとした人々の努力に感謝します。ここで提供される他のサービスを整理する必要があります。しかし、それは別の日の問題です。

0
Goff

このレシピは、同じ問題が発生した後に私に役立ちました。答えを見つけようとしてネット全体を見渡して、ついにこれに出くわしましたが、それでも助けはありませんでした。

私が見る問題は多面的です。

  1. mdadmは、次回の再起動時に、デバイスファイルを/dev/md0から/dev/md127などに再割り当てします。したがって、fstabでデバイスファイルを使用することはできません。作成されたファイルシステムのUUIDを使用してしまいました。

  2. Web上のほとんどすべてのRAIDドライブ設定チュートリアルは、次のようなドライバーデバイスファイルを使用したRAIDデバイスの作成を示しています。

    mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
    

    代わりに、次のようにパーティションデバイスファイルを使用しました。

    mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
    

    2番目の形式では、gdiskまたはfdiskを使用して、各ディスクにパーティションを適切に作成する必要があります。私はgdiskを使用し、タイプfd00として割り当てました。これはRAIDパーティションです。

  3. /etc/mdadm/mdadm.confを更新する必要があるという話はたくさんあります。これは間違っています。私は意図的にそのファイルを削除しました。必要ありません。 (下記参照)

それだけです。完全なレシピが続きます...


タイプfd00、Linux RAIDの1つのパーティションで各ドライブをパーティション化します。

root@teamelchan:~# gdisk /dev/sda
Command (? for help): n
Partition number (1-128, default 1):
First sector (2048-3907029134, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-3907029134, default = 3907029134) or {+-}size{KMGTP}:
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): fd00
Changed type of partition to 'Linux RAID'

Command (? for help): p
Disk /dev/sda: 3907029168 sectors, 1.8 TiB
Model: ST2000DM001-1ER1
Sector size (logical/physical): 512/4096 bytes
Disk identifier (GUID): F81E265F-2D02-864D-AF62-CEA1471CFF39
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 2048, last usable sector is 3907029134
Partitions will be aligned on 2048-sector boundaries
Total free space is 0 sectors (0 bytes)

Number Start (sector) End (sector) Size Code Name
1
2048 3907029134 1.8 TiB FD00 Linux RAID

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sda.
The operation has completed successfully.

これで、/ devにディスクデバイスとパーティションデバイスの両方が表示されます。

root@teamelchan:~# ls /dev/sd[a-d]*
/dev/sda /dev/sda1 /dev/sdb /dev/sdb1 /dev/sdc /dev/sdc1 /dev/sdd /dev/sdd1

次に、ディスクデバイスではなくパーティションデバイスファイルを使用して、mdadmで選択したRAIDを作成します。

root@teamelchan:~# mdadm --create --verbose /dev/md0 --level=0 --raid-devices=4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mdadm: chunk size defaults to 512K
mdadm: /dev/sda1 appears to contain an ext2fs file system
size=471724032K mtime=Sun Nov 18 19:42:02 2018
mdadm: /dev/sda1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
mdadm: /dev/sdb1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
mdadm: /dev/sdc1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
mdadm: /dev/sdd1 appears to contain an ext2fs file system
size=2930265540K mtime=Sun Nov 18 23:58:02 2018
mdadm: /dev/sdd1 appears to be part of a raid array:
level=raid0 devices=4 ctime=Thu Nov 22 04:00:11 2018
Continue creating array? y
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.

次に、/dev/diskをチェックインして、新しい/dev/md0 RAIDに関連付けられたUUIDがあるかどうかを確認します。何もないはずです。

root@teamelchan:~# ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Nov 22 04:24 4777-FB10 -> ../../sdf1
lrwxrwxrwx 1 root root 10 Nov 22 04:24 D616BDCE16BDAFBB -> ../../sde1
lrwxrwxrwx 1 root root 10 Nov 22 04:24 e79571b6-eb75-11e8-acb0-e0d55e117fa5 -> ../../sdf2

新しいファイルシステムを作成すると、/dev/md0を含むUUIDが作成されます。

root@teamelchan:~# mkfs.ext4 -F /dev/md0
mke2fs 1.44.1 (24-Mar-2018)
Creating filesystem with 2685945088 4k blocks and 335745024 inodes
Filesystem UUID: 7bd945b4-ded9-4ef0-a075-be4c7ea246fb
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848, 512000000, 550731776, 644972544, 1934917632,
2560000000

Allocating group tables: done
Writing inode tables: done
Creating journal (262144 blocks): done
Writing superblocks and filesystem accounting information: done

出来上がりです。

root@teamelchan:~# ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 10 Nov 22 04:24 4777-FB10 -> ../../sdf1
lrwxrwxrwx 1 root root 9 Nov 22 04:43 7bd945b4-ded9-4ef0-a075-be4c7ea246fb -> ../../md0
lrwxrwxrwx 1 root root 10 Nov 22 04:24 D616BDCE16BDAFBB -> ../../sde1
lrwxrwxrwx 1 root root 10 Nov 22 04:24 e79571b6-eb75-11e8-acb0-e0d55e117fa5 -> ../../sdf2

/ etc/fstabを変更し、新しいRAIDのマウントを追加しますデバイスファイルではなく、UUIDを使用してください。

root@teamelchan:~# cat /etc/fstab
UUID=e79571b6-eb75-11e8-acb0-e0d55e117fa5 / ext4 defaults 0 0
UUID=4777-FB10 /boot/efi vfat defaults 0 0
/swap.img none
swap sw 0 0
UUID=7bd945b4-ded9-4ef0-a075-be4c7ea246fb /md0/tweets ext4 auto 0 0

ここでは、何も見えません/etc/mdadm/mdadm.conf必要ありません。

root@teamelchan:~# ls -l /etc/mdadm
total 0

リブート

root@teamelchan:~# reboot
Connection to 192.168.0.131 closed by remote Host.
Connection to 192.168.0.131 closed.

RAIDはマウントされていますが、mdadmはデバイスファイルの名前をmd0からmd127に変更しました

実際のデバイスファイルではなくUUIDを使用したのは良いことです。

root@teamelchan:~# df /md0/tweets
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/md127 10658016696 73660 10120737636 1% /md0/tweets

Md0が/ devからなくなったように見える

root@teamelchan:~# ls /dev/md*
/dev/md127

/dev/md:

それでおしまい。現在、600 MB /秒以上で動作する10テラバイトRAID0を楽しんでいます

root@teamelchan:~# hdparm -tT /dev/md127

/dev/md127:
Timing cached reads: 26176 MB in 1.99 seconds = 13137.47 MB/sec
Timing buffered disk reads: 1878 MB in 3.00 seconds = 625.13 MB/sec
3
Ellison

/proc/mdstatは、RAIDパーソナリティ(RAID1、RAID5など)がロードされていないことを示しているため、RAIDセットのアクティブ化を試行することもありません。

Failed to start mdadm.service: Unit mdadm.service is masked.

このメッセージは、mdadm.serviceが最も強力な方法で無効にされたことを示します。サービスを開始する明示的な試みは行われず、他に何かがこのサービスに依存している場合でも、開始されません。

roaimaによってリンクされた質問 と同様に、これらのコマンドをrootとして実行してみます。

dpkg-reconfigure mdadm    # Choose "all" disks to start at boot
update-initramfs -u       # Updates the existing initramfs

1つ目はmdadmパッケージを再構成し、すべてのRAIDセットを検出し、ブート時に自動アクティブ化するRAIDセットを選択できるようにします。通常は「すべて」が適切な答えです。私が正しく理解していれば、これはmdadm.serviceがマスクされることにも注意する必要があります。

それが完了すると、2番目のコマンドはinitramfsを更新するため、更新された構成ファイルもinitramfsで更新され、ブートの初期段階で実行されるスクリプトはRAIDセットがあるという情報を取得しますそれをアクティブにする必要があります。

3
telcoM

問題の少なくとも一部は、同じRAIDデバイスに対して2つの定義があることです/dev/md/0あなたのmdadm conf。最初に修正する必要があります。

次に、アレイを実行します。最後に、 の指示に従うことができます。新しいRAIDアレイは自動アセンブルされず、起動の問題が発生します -

dpkg-reconfigure mdadm # Choose "all" disks to start at boot
update-initramfs -u # Updates the existing initramfs 
0
roaima