Bir mdadm baskın dizisini nasıl yeniden adlandırabilirim?


23

Bazı nedenlerden dolayı, mdadm baskın dizisini bir metin adına yeniden adlandırmaya çalıştığımda, değişiklik yapmıyor.

Bu serverfault sorudan tavsiye denedim , ama boşuna.

~$ mdadm --version
mdadm - v3.1.4 - 31st August 2010

~$ sudo mdadm --detail /dev/md0
/dev/md0:
Version : 1.2
  Creation Time : Tue Sep 27 08:32:32 2011
     Raid Level : raid1
     Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
  Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
    Update Time : Sun Oct  2 17:59:37 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : omicron:0  (local to host omicron)
           UUID : 75c4a555:482aecd0:ade70dfc:1547926a
         Events : 17

Number   Major   Minor   RaidDevice State
   0       8       80        0      active sync   /dev/sdf
   1       8       96        1      active sync   /dev/sdg

~$ sudo mdadm --stop /dev/md0
mdadm: stopped /dev/md0

~$ sudo mdadm --assemble /dev/md/alpha --update=name /dev/sd[gf]
mdadm: /dev/md/alpha has been started with 2 drives.

~$ sudo mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Tue Sep 27 08:32:32 2011
     Raid Level : raid1
     Array Size : 1953513424 (1863.02 GiB 2000.40 GB)
  Used Dev Size : 1953513424 (1863.02 GiB 2000.40 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent
    Update Time : Sun Oct  2 18:06:11 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : omicron:0  (local to host omicron)
           UUID : 75c4a555:482aecd0:ade70dfc:1547926a
         Events : 17

Number   Major   Minor   RaidDevice State
   0       8       80        0      active sync   /dev/sdf
   1       8       96        1      active sync   /dev/sdg

~$ cat /proc/mdstat
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid1 sdf[0] sdg[1]
      1953513424 blocks super 1.2 [2/2] [UU]

md126 : active (auto-read-only) raid1 sdd[0] sde[1]
      1953513424 blocks super 1.2 [2/2] [UU]

md127 : active (auto-read-only) raid1 sdb[0] sda[1]
      976762496 blocks [2/2] [UU]

unused devices: <none>

Gördüğünüz gibi, ad hala omicron:0eski cihaz dosyasından erişilebilir ve hala erişilebilir durumda. Denemek sudo mdadm --detail /dev/md/alphaişe yarayacak ve çalışmayı bıraktığında bir sonraki yeniden başlatmaya kadar aynı, yanlış adı verecek.

Hangi ismi koyacağınıza karar verirken, mdadm'in kafası karışıyor ve sadece cihaz dosyasını oluşturuyor gibi görünüyor.


KENARA

Mdadm'i süper bloğun isim kısmının güncellemesini yapmanın bir yolu var mı (yani dizinin olmasını istediğiniz ismi açıkça belirtin) açıkça superblock'u yeniden yaratmak zorunda kalmadınız mı? (yani sudo mdam --zero-superblock /dev/sd[fg]; sudo mdadm --create /dev/md/alpha --raid-devices=2 --level=1 --assume-clean --name=alpha /dev/sd[fg])


Sorun, yeniden başlatmanın ardından, ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=c66a267...mdadm.conf dosyasına eklenmesine rağmen , adlandırılmış aygıt dosyasının kaybolması ve standart formattan biriyle değiştirilmesidir. (/ dev / md125 veya benzeri)

Yeniden adlandırılmış bir mdadm dizisinin adını korumasını nasıl sağlayabilirim? - Yani - Ubuntu'yu önyükleme arasında aygıt dosyalarına sürdürebilir miyim?

Yanıtlar:


19

Gerçekten de --name=böyle bir isim vermelisin :

sudo mdadm --assemble /dev/md/alpha --name=newname --update=name /dev/sd[gf]

Yeniden başlatma sırasında tutarlı bir davranış sergilemek için, --name argümanında aynı ismi, cihazın son kısmındakiyle aynı şekilde kullanmalısınız. İşte olur: sudo mdadm - birleştir / dev / md / alpha - name = alpha --update = isim / dev / sd [gf]

Tam bir açıklama için aşağıdaki Khassad'ın gönderisine bakın.


1
Bu komut satırında yapılan küçük bir güncelleme, netlik için, bir boob gibi, '--update =' komutundan sonra dizinin orijinal adını girdim. sudo mdadm --assemble /dev/md/alpha --name={newname} --update=name /dev/sd[gf] Bu mantıklı veya daha net yapar
umarım

Merhaba, # sudo mdadm komutunu verdikten sonra - assemble / dev / md127 --name = md0 --update = name / dev / sd [ab] mdadm alıyorum: / dev / sda meşgul - mdadm atlanıyor: / dev / sdb meşgul - atlama Herhangi bir thougth? Tabii ki ilk önce diziyi çıkardım!
ustura7

2
@ razor7mdadm --stop --scan md127
Daniel Dinnyes

12

Ubuntu'yu botlar arasında isim değişikliği ile sürdürmenin yolu initramfs'ınızı güncellemektir. Dizi adınızı ve mdadm.conf'nuzu güncelledikten sonra aşağıdaki komutu vermeniz gerekir:

sudo update-initramfs -u

Tüm süreç:

sudo mdadm --stop /dev/md125
sudo mdadm --assemble /dev/md/alpha --name=alpha --update=name /dev/sd[fg]
sudo mdadm -Db /dev/md/alpha

Üçüncü komut şöyle bir şey döndürmelidir:

ARRAY /dev/md/alpha metadata=1.2 name=omicron:alpha UUID=5b024352:3a940335:233aa23f:5c6b2a1f

Sonucu /etc/mdadm/mdadm.conf dosyasına yapıştırın (eski satırı değiştirerek). Veya çalıştır:

sudo mdadm -Db /dev/md/alpha >> /etc/mdadm/mdadm.conf

Bir sonraki çalıştırma:

sudo update-initramfs -u

Sonunda yeniden başlat.

Bu tartışma faydalı oldu .


8

Pille ve NN'nin ilk cevabı işe yarıyor.

Buradaki hile, --nameseçeneği belirtmediğinizde yapılan tek adlandırma mdadmişleminde, atanmış olan cihaz numarasından dizi adını atamaktır. Bu soruda 0, yani yeni dizi ismi 0'dır.

Birleştir komutunda kullanılacak aygıt adını (burada "alfa") belirttiğinizden bu aygıt adını oluşturur ve kullanır. Ancak autostart'ta mdadm, süper blokta gördüğü adı temel alan bir cihaz yaratır, bu durumda 0, böylece birleştirme komutunuzda belirttiğiniz cihaz adı kaybolur.

Adınızın yapışkan ve tutarlı olmasını sağlamak için, cihaz adınızın son bölümünde ve yeni dizi adınızda aynı adı kullanmanız gerekir. Bu durumda, "alpha" aygıtı için bu komut satırını kullanmanız gerekir:

mdadm --assemble /dev/md/alpha --name=alpha --update=name /dev/sd[gf]

Ayrıca ana bilgisayar adını da değiştirebilirsiniz, bunun için -name=<hostname>:<array_name>sözdizimini kullanarak açıkça beyan etmeniz gerekir .

Bu, örneğin bir makine ismi değişikliğinden sonra faydalı olabilir.


2

Aradığınız cevap doğru mdadm man sayfasında görünüyor.

[create, build, grow]
      -N, --name=
          Set  a name for the array.  This is **currently only effective when creat‐
          ing an array** with a version-1 superblock, or an  array  in  a  DDF  con‐
          tainer.   The  name is a simple textual string that can be used to iden‐
          tify array components when assembling.  If name is needed but not speci‐
          fied, it is taken from the basename of the device that is being created.
          e.g. when creating /dev/md/home the name will default to home.

ve montaj için

       -N, --name=
          Specify the name of the array to assemble.  **This must be the  name  that
          was  specified  when  creating the array**.  It must either match the name
          stored in the superblock exactly, or it  must  match  with  the  current
          homehost prefixed to the start of the given name.

Bu, name niteliğinin ayarlandıktan sonra neden yapışkan olmadığını açıklar. Eğer işe yaradıysanız, lütfen cevabı sizin için yapan bir yorum ile karşılayın. Alternatif olarak, her zaman bir udev kuralı ve dizinin UUID'sini çapa olarak kullanarak sembolik bağlantılar oluşturabilirsiniz.

Sahte adın /etc/mdadm.conf dosyasına eklenmesi noktasını göremiyorum, zaten kanonik dizi adı olan UUID'yi kullanıyorsunuz. Değişime uygun olduğunu düşündüğünüz başka bir değişken eklemek, sadece gereksiz bir bakımdır ve sorun istemek demektir, örneğin dizi başlamaz.

Bu gözlemlerin ötesinde, neden çalışma zamanında adını güncelleyemediğinizi anlamak için gidilecek en iyi yer, linux-raid postalama listesine ping yapmaktır.


1

adını değiştirdikten sonra, sizinkini güncellemeye çalıştınız mdadm.confmı?

 mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm.conf

0

Baskın hacimler dahili olarak adlarında bir boşlukla oluşturulduklarında mdadm'de ​​bir hata var. Bu birimler oluşturulan /etc/mdadm/mdadm.conf dosyasındaki biçim hatası nedeniyle doğru şekilde monte edilmiyor. Onları orada yeniden adlandırmanız gerekiyor, ancak kalıcı olmayacak. Bu yüzden dahili isimleri yeniden adlandırmak zorunludur ... ancak meta verilerini bloke eden ve isim seçeneğini desteklemeyen tüm RAID denetleyicilerinde desteklenmiyor. Bu birimleri nasıl yeniden adlandıracağımı bilmiyorum (UUID'leri tarafından dahili olarak atıfta bulunulsalar bile, isimler Linux tarafından kullanılan isimlerdir; zıt tarafta Windows böyle bir hataya sahip değildir ve isimlerinde boşluk içeren RAID birimlerini mükemmel bir şekilde monte eder)!

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.