Mdadm'ın her açılıştan sonra RAID'i otomatik olarak nasıl birleştirmesini sağlayabilirim?


43

Kullanarak başarıyla bir RAID (yansıtma) oluşturdum mdadm. Ancak, her önyüklemeden sonra aşağıdaki komutları çalıştırmam gerekiyor:

mdadm --stop --scan // to stop /dev/md127 - I don't know where the number 127 even comes from
mdadm --assemble --scan // to start /dev/md0

Neyi yanlış yapıyorum / neden bu komutları önyüklemede çalıştırmam gerekiyor? Her bir (yeniden) önyüklemeyle RAID'i otomatik başlatmanın doğru yolu nedir?

Yanıtlar:


36

Not: Kök olarak giriş yapmanız ya da tüm bunları yapmak için sudo kullanmanız gerekir ...

  • /Etc/mdadm/mdadm.conf dosyasını oluşturmak veya düzenlemek için favori düzenleyicinizi aşağıdaki gibi kullanın:

Dosya yoksa, aşağıdakini yeni, boş dosyaya yapıştırın:

# mdadm.conf
#
# Please refer to mdadm.conf(5) for information about this file.
#

DEVICE partitions

# auto-create devices with Debian standard permissions
CREATE owner=root group=disk mode=0660 auto=yes

# automatically tag new arrays as belonging to the local system
HOMEHOST <system>

# instruct the monitoring daemon where to send mail alerts
MAILADDR root

# definitions of existing MD arrays
  • Dosya 'yı kaydet

  • Dosyanın sonunda array config'inize bir referans eklemek için aşağıdaki komutu çalıştırın:

    mdadm --detay --scan >> /etc/mdadm/mdadm.conf

Bu, mdadm.conf'un sonuna aşağıdaki gibi bir satır eklemelidir:

ARRAY / dev / md0 seviyesi = baskın 5 num-devices = 3 meta veri = 00.90 UUID = a44a52e4: 0211e47f: f15bce44: 817d167c

Mdadm komutu ARRAY satırının üstüne başka bir şey eklediyse, kaldırın. Örneğin, makinelerimden birinde komut 'mdadm: meta veri biçimi 00.90 bilinmeyen, yoksayıldı' ifadesini döndürüyor. ARRAY çizgisinden önce.

Diziniz şimdi önyüklemede otomatik olarak oluşturulmalı ve böylece / etc / fstab dosyasına bir giriş ekleyebilirsiniz (eğer zaten yoksa)


6
Belki update-initramfs -u
eklerdim:

1
mdadm --detail --scan sistemimde hiçbir şey yazdırmıyor, ancak bir baskın0'ın (ayna) iki bölümünün olduğundan emin olduğumu biliyorum. Bu konuda herhangi bir genel öneri açığız.
Lennart Rolland

1
@LennartRolland - mdadm -Esbunun yerine deneyin .
slm

bu benim için işe yaramadı, çalışmasını sağlamak için yapmak zorunda kaldım grub-install /dev/sda(sizin için uygun olan herhangi bir şeyin yerine
sda'yı

Alternatif olarak sadece çekirdek seçeneğini kullanabilirsiniz: md.auto=1... Ben aslında bunu tam olarak test etmedim ama sözde onları algılar ve birleştirir (veya en azından bunu yapmaya çalışır). Fakat kernel.org/doc/html/v4.15/admin-guide/md.html bu konuda biraz belirsizdir: MD, çekirdekte derlendiğinde (modül olarak değil), 0xfd tipindeki bölümler taranır ve otomatik olarak birleştirilir RAID dizileri içine. [...] Çekirdek 2.6.9'dan itibaren, yalnızca 0 süper blok tipi olan sürücüler otomatik olarak belirlenebilir ve önyükleme sırasında çalıştırılabilir. Ve md.auto (ya da her neyse) anlamına gelmez, bu yüzden şimdi emin değilim.
Pryftan

7

Bunun daha eski bir soru olduğunun farkındayım, ancak Ubuntu Server 12.04'ün 32 bit sürümünde bununla ilgili sinir bozucu bir zaman geçirdim.

Çalıştırmak mdadm --detail --scan >> /etc/mdadm/mdadm.confçizgi ekledi

ARRAY / dev / md0 meta verileri = 1.2 name = ubuntu: 0 UUID = a8a570c6: 96f61865: 05abe131: 5c2e2f7e

Yeniden başlattıktan sonra / dev / md0 'i asla göremedim. mdadm --detail --scanTekrar çalıştırıyorum (sonucu bir dosyaya koymadan)

ARRAY / dev / md / ubuntu: 0 meta veri = 1.2 name = ubuntu: 0 UUID = a8a570c6: 96f61865: 05abe131: 5c2e2f7e

ve elle montaj /dev/md/ubuntu:0işe yarayacaktı. Sonunda, ben de fstab dosyasına koyduğum buydu.

Neyi yanlış yaptığımdan emin değilim, eğer Ubuntu 12.04'te böyle çalışıyorsa veya bu kötü bir uygulamadırsa. Sadece benim için neyin işe yaradığını paylaşmak istedim.


Burada da aynı problem. Bir sorun olup olmadığından emin değilim ..
Christophe De Troyer

3

Debian wheezy'de bir adım daha gerekir: /etc/default/mdadmsette autostart false değerinden true

#OTOMATİK BAŞLATMA:
# mdadm, /etc/mdadm/mdadm.conf içinde listelenen dizileri otomatik olarak başlatmalıdır
Önyükleme sırasında #
OTOMATİK = true

Ayrıca seçenek mdadm -Es >>/etc/mdadm/mdadm.confyerine kullanmak zorunda kaldım --scan, çünkü bu benim için işe yaramadı.


3
sudo mdadm -Es >> /etc/mdadm/mdadm.conf

Şimdi /etc/mdadm/mdadm.conf dosyasına eklenen satırları aşağıdaki şekilde düzenleyin. Her şeyi silin, ancak temel bölümleri. Gibi görünmeli

ARRAY /dev/md5 UUID=031cea92:50a7a28c:6b077fe7:8817092a
ARRAY /dev/md6 UUID=53454954:4044eb66:9169d1ed:40905643

Not: Size kolaylık sağlamak için mdX de X'i seçebilirsiniz.

Şimdi yeniden başlat

sudo update-initramfs -u
sudo reboot

EDIT: komut düzeltildi.


Thi yazdım çünkü Linker 3000'ün cevabı benim için işe yaramadı.
04

3

Raspbian GNU / Linux 8 (jessie) çalıştıran Ahududu Pi 2'mde bu sorunu yaşadım. Bir RAID dizilim vardı /dev/sda1ve /dev/sdb1önyüklemede birleştirilemedi. Benim de vardı /etc/mdadm/mdadm.confdosyası girişi

ARRAY /dev/md/0  metadata=1.2 UUID=53454954:4044eb66:9169d1ed:40905643 name=raspberrypi:0 

(numaralarınız farklı olacaktır; bunun nasıl sağlanacağı ile ilgili diğer cevaplara bakınız.)

Benim de vardı /etc/fstabdosyası girişi

/dev/md0        /data           ext4    defaults          0       0

(ve elbette /datagerçekten var)

OP gibi, önyüklemeden sonra RAID dizisini elle de monte edebilir ve monte edebilirim, ancak görünüşte doğru şekilde kurduğum halde önyükleme sırasında otomatik olarak gerçekleşmesini sağlayamadım.

Problemi şu şekilde çözebildim. Komut dosyasını araştırdım /etc/init.d/mdadm-raidve bir hata ayıklama kodu satırı ekledim

ls /dev > /home/pi/devices.txt

Rebooting ve bunun cihazları öğrenilen bu dosyayı kontrol /dev/sdave /dev/sdbzaman var olan mdadm-raidbaşlatma oldu ama bölümleri /dev/sda1ve /dev/sdb1eksik. /etc/init.d/mdadm-raidDosyayı düzenledim ve satırı ekledim

partprobe

Başlıktan sonra (yani, ### END INIT INFOancak senaryo başlamadan önce). Bu, bölümlerin algılanmasına neden oldu ve böylece mdadm-raidkomut dosyası, RAID dizisini birleştirerek sorunu çözdü. Umarım bu birine yardımcı olur!


0

Raspbian'da bir Raspberry Pi'de birkaç harici USB HDD kullanarak bununla mücadele ediyorum. USB sürücüler udev tarafından tanındıktan sonra başlatılan ve checkfs.sh (önyükleme sırasındaki dosya sistemlerini kontrol eden) öncesi mdadm-raid'in başladığından emin olmak için servislerin başlangıç ​​sırasını karıştırmam gerekti. Mdadm baskını çok erken başladıysa, sürücüler mevcut değildi ve bu nedenle dizi toplanmadı. Bu daha sonra fsck'in başarısız olduğu ve önyükleme işleminin bir bakım istemine bırakıldığı anlamına gelir (çünkü baskın dizisi diğer hizmetler için gereklidir).

Bootroot.sh komutundan sonra ancak checkfs.sh komutunu çalıştırmadan ve çalıştırmadan önce mdadm baskınını başlatmak için önyükleme bağımlılıklarının değiştirilmesi update-rc.d mdadm-raid defaults, ardından update-initramfs -uv -k `uname -r`(etrafındaki not defteri tersine uname) düzeltildi (sonunda). Zaten benim için, YMMV.


Yukarıdaki un -r adının geri dönüşlerde olması gerektiğine dikkat edin ancak onlardan nasıl kaçılacağını
Rodney

Bu, hangi raspbian versiyonuydu? Wheezy'de iyi çalışıyordum, ama Jessie'ye ugrading çizme sırasında araya girdi.
nwaltham

0

Denedim

mdadm --create /dev/md/abcdef ...

Softlink'in /dev/md/abcdefyeniden başlatmalar üzerinde sürdüğünü ve cihaza soft link üzerinden erişilmesi gerektiğinde görüyorum .

Kabul edilebilir bir çözüm mü?


0

Ekleyerek, Ahududu Pi 3 olması rootdelay=5için /boot/cmdline.txtbenim için bu sorunu çözdük.

Kredi buraya gidiyor .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.