Linux md RAID: / dev / md0 ve / dev / md / 0


19

Daha yeni sistemlerde /usr/share/mdadm/mkconf(oluşturmak için kullanılan komut dosyası /etc/mdadm/mdadm.conf) aşağıdakilerin /dev/md/0yerine aygıt adını kullanma eğilimindedir /dev/md0:

new-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md/0 metadata=1.2 UUID=a0021927:0e4f10bf:2c47dc72:ca0b352e name=unassigned:0

Bu, /dev/md0orada bekleyen kullanıcılar için biraz tahrişe neden olabilir , ancak görünüşe göre sunucu sorunsuz önyükleme yaptığı için iyi çalışıyor.

Gelen /proc/mdstatcihazın hala denir /dev/md0:

new-system ~ # cat /proc/mdstat
Personalities : [raid1]
md0 : active raid1 sdb2[2] sda2[0]
      1953381184 blocks super 1.2 [2/2] [UU]

unused devices: <none>

ls/dev/md/0şunun için bir sembolik bağlantı olduğunu gösterir /dev/md0:

new-system ~ # ls -l /dev/md/0 
lrwxrwxrwx 1 root root 6 Nov 20 14:06 /dev/md/0 -> ../md0

Başka bir eski sistemde mkconfhala kullanır /dev/md0ve /dev/mdboştur:

old-system ~ # /usr/share/mdadm/mkconf | grep ARRAY
ARRAY /dev/md0 UUID=76472cf5:83fd8e5a:ad617046:69b2ebf1
old-system ~ # ls -l /dev/md
total 0

Bu cihaz adları arasındaki farkı bilmek istiyorum ve Google'da herhangi bir açıklama bulamıyorum. /dev/mdNEski ad mı ve cihaz adlarına mdtaşınmayı mı planlıyor /dev/md/N? Bu değişiklik 1.2 meta verilerle ilgili mi?


EDIT 2017-09-11: Bence Krzysztof Stasiak'ın cevabı doğru. Şimdiye kadar bu soruyu tamamen unutmuştum. Geçen Cuma test RAID ile oynarken "neden md0, md1, md2, ... vb karmaşık kurulumlarda ne ezberlemek yerine benim dizi adı?" Düşündüm ve denedim:

test-server ~ # mdadm --assemble /dev/mdfoobar /dev/loop[01]
mdadm: /dev/mdfoobar is an invalid name for an md device.  Try /dev/md/mdfoobar

Ve gerçekten işe yarıyor:

test-server ~ # mdadm --assemble /dev/md/foobar /dev/loop[01]
mdadm: /dev/md/foobar has been started with 2 drives.

test-server ~ # ll /dev/md/foobar 
lrwxrwxrwx 1 root root 6 Sep 11 10:45 /dev/md/foobar -> ../md0

test-server ~ # cat /proc/mdstat 
Personalities : [raid1]
md0 : active (auto-read-only) raid1 loop0[0] loop1[1]
      102272 blocks super 1.2 [2/2] [UU]

unused devices: <none>

(Ayrıca yapabilirsiniz mdadm --assemble foobar DEV...).

man mdadmBölümünde ayrıntılı bir açıklama var DEVICE NAMES.



@frostschutz ah, bu yüzden mdadm -Eşu anda unassigned:0yeni sunucuda olan dizi adı , bölünür :ve ikinci bölüm /dev/md/<name>? Dizi adını olarak değiştirirsem unassigned:asdf, symlink çağrılır /dev/md/asdfmı? Ve gerçek cihaz her zaman çağrılır /dev/mdN, burada N bir sonraki ücretsiz numaradır?
Martin von Wittich

1
Bu şekilde kullanabilirsiniz, ama kimse kullanmaz; Bu gerçekten işe yaramaz, çünkü genellikle md, ana bilgisayar adınız ayarlanmamış olan canlı bir cd'den oluşturulur. Gibi bir isim unassigned:0sadece braindead'dir.
frostschutz

Yanıtlar:


1

diziyi kendi adı olarak adlandırabilirsiniz (yalnızca 0-127 değil) ve mdadm 3.0.3'ten beri yalnızca ad kullanabilirsiniz. Düşünme yolu /dev/md/$namedaha fazla esneklik veya bir tür temiz veya grup dizisi yapmak için alt klasör kullanacak şekilde değiştirilirse . Eğer md dizisi formatta oluşturulursa, /dev/mdXyeni formata uyumluluk sağlamak için sembolik link eklenir.


1

Cihaz isimleri söz konusu olduğunda, udev'e sorun . Anladığım kadarıyla,

  1. md%dadlandırma çekirdek tarafından kullanılan, sürücü tarafından üretildiği md.c # L5284 ve içinde kullanılan /proc/partitionsve sysfs. Bu nedenle,/dev

  2. /dev/md/...ve /dev/disk/by-id/...udevd tarafından sembolik olarak üretilir. Sistemimde ilgili kurallar şu şekilde tutulur /usr/lib/udev/rules.d/63-md-raid-arrays.rules:

    ...
    ENV{DEVTYPE}=="disk", ENV{MD_DEVNAME}=="?*", SYMLINK+="md/$env{MD_DEVNAME}"
    ...
    

Udev dosyası mdadm bu taahhütopenSUSE 11.1-rc3 göre geliyor gibi görünüyor . Bu dosyayı teslim ettim , ancak sembolik bağlantıları yok ...openSUSE 11.0md/%d


0

Muhtemelen orijinal yol Linux çekirdek sürümüne veya Unix sistemine bağlı olarak değişir. Sembolik bağlantı /dev/md/Nuyumluluk nedeniyle var olabilir. Bunun yerine bu yolu kullanabilen programlar veya komut dosyaları /dev/mdN.

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.