Bir mdadm baskın dizisini nasıl yeniden adlandırırım?

19

Herhangi bir nedenle, bir mdadm raid dizisini bir metin adına yeniden adlandırmaya çalıştığımda, değişiklik yapılmıyor.

Bu sunucu hatası sorusundan öneriyi denedim , ama boşuna değil.

~$ 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:0 olarak raporlanmış ve eski aygıt dosyasından hala ulaşılabilir. % Co_de% çalışılıyor ve çalışmayı durdurduğunda bir sonraki yeniden başlatma işlemine kadar aynı, yanlış adın rapor edilmesi.

Görünüşe göre, hangi ismin girileceğini anladığımızda mdadm karışır ve bunun yerine sadece aygıt dosyasını oluşturur.

KENARA

Üstkümeyi açıkça yeniden oluşturmak zorunda kalmadan mdadm kuvveti süper blokun ad kısmının bir güncellemesini (yani dizinin olmasını istediğiniz adı açıkça belirle) yapmanın bir yolu var mı? (ör. sudo mdadm --detail /dev/md/alpha )

Sorun şu ki, yeniden başlatıldıktan sonra, 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] 'in mdadm.conf dosyasına eklenmesine rağmen, adlandırılmış aygıt dosyası ayrıştırılır ve standart biçimden biriyle değiştirilir. (/ dev / md125 veya benzeri)

Yeniden adlandırılmış bir mdadm dizisini adını nasıl tutabilirim? - I.e. - Ubuntu'yu botlar arasında cihaz dosyalarını nasıl kalıcı hale getirebilirim?

    
sordu Zaz 02.10.2011 18:31

6 cevap

16

Aslında, --name= gibi bir isim vermelisiniz:

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

Yeniden başlatma üzerinde tutarlı bir davranışı elde etmek için, aynı adı --name argümanında cihazın son kısmından daha fazla kullanmanız gerekir. Burada şöyle olurdu: sudo mdadm - döküm / 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.

    
verilen cevap pille 05.10.2011 09:49
9

Ubuntu'nun botlarda isim değişikliğini sürdürme şekli, initramf'lerinizi güncellemektir. Dizi adınızı ve mdadm.conf dosyasını 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 (eski satırı değiştirerek) yapıştırın. Veya yürütmek:

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

Sonraki çalışma:

sudo update-initramfs -u

Son olarak, yeniden başlatın.

Bu tartışma yararlıydı.

    
verilen cevap Swoogan 01.10.2013 04:45
6

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

Buradaki hile, --name seçeneğini belirtmediğinizde, mdadm tarafından yapılan yeniden adlandırmanın, dizi adını tahsis ettiği cihaz numarasına atamasıdır. Bu soruda 0'dır, bu yüzden yeni dizi adı 0'dır.

Montaj komutunda kullanmak için cihaz adını ("alfa" burada) belirttiğinizden, bu cihaz adını oluşturacak ve kullanacaktır. Ancak autostart mdadm süperblockta gördüğü isme dayanan bir cihaz yaratır, bu durumda 0 olur, böylece montaj komutunuzda belirttiğiniz cihaz adı kaybolur.

Adınızı yapışkan ve tutarlı bir şekilde değiştirmek için, cihaz adınızın son kısmında ve yeni dizi adınızda aynı adı kullanmanız gerekir. Bu durumda, "alfa" 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 makine adını da değiştirebilirsiniz. Bunu yapmak için, -name=<hostname>:<array_name> sözdizimini kullanarak açıkça bildirmeniz gerekir.

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

    
verilen cevap Khassad 08.12.2011 11:25
1

adını değiştirdikten sonra, mdadm.conf ’sini güncellemeyi denediniz mi?

 mdadm --examine --scan --config=mdadm.conf >> /etc/mdadm.conf
    
verilen cevap maniat1k 05.10.2011 15:52
1

Aradığınız cevap mdadm adam sayfasında doğru gibi 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, belirlendikten sonra ad özniteliğinin neden sabit olmadığını açıklar. Eğer işe koyduysan, lütfen cevabın senin için ne gibi bir cevap verdiğini söyleyin. Alternatif olarak, her zaman bir udev kuralı ve dizinin UUID'sini bir çapa olarak kullanarak bağlantılar oluşturabilirsiniz.

Sahte adı /etc/mdadm.conf dosyasına eklemenin noktasını göremiyorum, zaten kanonik dizi adı olan UUID kullanıyorsunuz. Değiştirmek için uygun gördüğünüz başka bir değişken eklemek yalnızca gereksiz bir bakımdır ve sorun çıkarır örn. dizi başlatılamıyor.

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

    
verilen cevap ppetraki 29.11.2011 13:26
0

Basamaklı birimlerin adında bir boşlukla dahili olarak oluşturulduğunda mdadm'ın bir hatası vardır. Oluşturulan /etc/mdadm/mdadm.conf dosyasındaki biçim hatası nedeniyle bu birimler doğru şekilde eklenmeyecek. Onları orada yeniden adlandırmanız gerekiyor ama kalıcı olmayacak. Bu nedenle, dahili adların yeniden adlandırılması gereklidir ... ancak meta verilerini engelleyen ve ad seçeneğini desteklemeyen tüm RAID denetleyicilerinde desteklenmez. Bu birimlerin nasıl yeniden adlandırılacağını anlamıyorum (UUID tarafından dahili olarak başvuruda bulunsalar bile, isimler Linux tarafından kullanılanlardır; aksi takdirde Windows'da böyle bir hata yoktur ve adlarında boşluk içeren RAID birimlerini mükemmel şekilde bağlar)!

    
verilen cevap verdy_p 28.06.2017 02:01

Etiketlerdeki diğer soruları oku