RAID1 dizisini mdadm ile nasıl yeniden boyutlandırabilirim?


12

Ubuntu 11.04 (çekirdek 2.6.38-11) çalıştırıyorum. 2x160GB'ı 2x500GB sürücülerle değiştirdim. RAID1 olarak yapılandırılırlar.

Bölümleme tabloları doğru boyutları gösterir. İşte sfdisk:

# sfdisk -d /dev/sdb
# partition table of /dev/sdb
unit: sectors

/dev/sdb1 : start=       63, size=   192717, Id=fd, bootable
/dev/sdb2 : start=   192780, size=  7807590, Id=fd
/dev/sdb3 : start=  8000370, size=968767695, Id=fd
/dev/sdb4 : start=        0, size=        0, Id= 0

Ve fdisk:

# fdisk -l /dev/sdb

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0006c78f

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *           1          12       96358+  fd  Linux raid autodetect
/dev/sdb2              13         498     3903795   fd  Linux raid autodetect
/dev/sdb3             499       60801   484383847+  fd  Linux raid autodetect

Ama yeni alanı görmüyorum:

root@green:~# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/md2              143G  134G  8.3G  95% /


root@green:~# mdadm --examine /dev/sdb3
/dev/sdb3:
          Magic : a92b4efc
        Version : 0.90.00
           UUID : b8f83980:f60d820c:74c46fbf:0baa68bc
  Creation Time : Sun Mar 29 18:48:46 2009
     Raid Level : raid1
  Used Dev Size : 152247936 (145.19 GiB 155.90 GB)
     Array Size : 152247936 (145.19 GiB 155.90 GB)
   Raid Devices : 2
  Total Devices : 2
Preferred Minor : 2

    Update Time : Mon Oct 10 19:22:36 2011
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0
       Checksum : 7b5debb7 - correct
         Events : 10729526


      Number   Major   Minor   RaidDevice State
this     0       8       19        0      active sync   /dev/sdb3
   0     0       8       19        0      active sync   /dev/sdb3
   1     1       8        3        1      active sync   /dev/sda3

Ben mdadm denedim ve resize2fs:

# mdadm --grow /dev/md2 --size=max
mdadm: component size of /dev/md2 has been set to 152247936K

# resize2fs /dev/md2 
resize2fs 1.41.14 (22-Dec-2010)
The filesystem is already 38061984 blocks long.  Nothing to do!

Herhangi bir fikir?

İstek başına eklendi

# cat /proc/mdstat 
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] 
md2 : active raid1 sdb3[0] sda3[1]
      152247936 blocks [2/2] [UU]

md0 : active raid1 sdb1[0] sda1[1]
      96256 blocks [2/2] [UU]

md1 : active raid1 sdb2[0] sda2[1]
      3903680 blocks [2/2] [UU]

unused devices: <none>

bölümler

# cat /proc/partitions 
major minor  #blocks  name

   8        0  488386584 sda
   8        1      96358 sda1
   8        2    3903795 sda2
   8        3  152248005 sda3
   8       16  488386584 sdb
   8       17      96358 sdb1
   8       18    3903795 sdb2
   8       19  152248005 sdb3
   9        1    3903680 md1
   9        0      96256 md0
   9        2  152247936 md2

aralandı:

# parted
GNU Parted 2.3
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) print all                                                        
Model: ATA WDC WD5000AAKX-0 (scsi)
Disk /dev/sda: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      32.3kB  98.7MB  98.7MB  primary  ext3            boot, raid
 2      98.7MB  4096MB  3997MB  primary  linux-swap(v1)  raid
 3      4096MB  500GB   496GB   primary  ext3            raid


Model: ATA WDC WD5000AAKS-4 (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system     Flags
 1      32.3kB  98.7MB  98.7MB  primary  ext3            boot, raid
 2      98.7MB  4096MB  3997MB  primary  linux-swap(v1)  raid
 3      4096MB  500GB   496GB   primary  ext3            raid


Model: Linux Software RAID Array (md)
Disk /dev/md1: 3997MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system     Flags
 1      0.00B  3997MB  3997MB  linux-swap(v1)


Model: Linux Software RAID Array (md)
Disk /dev/md0: 98.6MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0.00B  98.6MB  98.6MB  ext3


Model: Linux Software RAID Array (md)
Disk /dev/md2: 156GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End    Size   File system  Flags
 1      0.00B  156GB  156GB  ext3

E-posta ile yorum yapın:

sorun meta verilerde, sadece raid dizisini --update deviceize parametresiyle birleştirmeniz gerekir

ve bundan sonra -G / dev / md? -z max iş yapacak :)


Çıktısı nedir cat /proc/mdstat? Nasıl cat /proc/partitions?
Steven Pazartesi

Yukarıdaki çıktı eklendi.
Paul Schreiber

Verilerinizi yeni disklere nasıl kopyaladığınızdan bahsetmediniz. Ancak cevabı büyük ölçüde etkileyebilir.
poige

Verileri yeni disklere kopyalayarak sfdisk ile bölümlere ayırarak, mdadm --add kullanarak ve veri senkronizasyonuna izin vererek aldım.
Paul Schreiber

@ Paul Schreiber, sfdiskdiyorsun ki (?)… Disk bölümleme şemasını da kopyaladığınızı mı söylüyorsunuz?
poige

Yanıtlar:


9

Sadece kullan

mdadm --grow --size max /dev/md2

Sonra kullanabilirsiniz

resize2fs /dev/md2

Dosya sisteminin baskın boyutuyla eşleşmesine izin vermek için. Tüm bunlar md2'nin bağlantısını kesmeden çevrimiçi olarak yapılır.


1
Komutun tamamı:resize2fs -p /dev/md2
Milan Kerslager

@ MilanKerslager, -porada ne yapıyor ?
Jaime Hablutzel

1
@JaimeHablutzel -p yüzde tamamlama çubuğudur, bu yüzden biraz zaman alabileceğinden neler olduğunu biliyorsunuz (orijinal cevap zaten düzeltildi).
Milan Kerslager

2

Düzenli olarak mdadm kullanıyorum ve onu en tehlikeli Linux yardımcı programlarından biri olarak görüyorum. Ancak, doğru güvenlik önlemlerini uygularsanız, olası veri kaybı durumlarının çoğunu önleyebilirsiniz. Tüm verilerinizi yedekleyin !!! geçmişte iki kez mdadm tarafından ısırıldı, 700GB üzerinde veri kaybettim ve çok çok azı kurtarılabildi, uyarıldı.

Mdadm aniden artan sürücüler için beklemediğinden veya telafi etmediğinden RAID dizisini tekrar oluşturmanız gerekecek çok iyi bir şans var. Baskın süper bloğunda belirtilen boyutu kullanır, sürücünün kendisini kullanmaz. Sürücülerin önceden senkronize edilmesi şartıyla, çok fazla sorununuz olmamalıdır.

Önyükleme yapmak istiyorsanız, superblock 0.9 sürümünü kullanın.

Düzenle

Ben böyle yapardım, denenmemiş !

Eksik bir dalışı olan bir RAID1 oluşturun, böylece verilerin bir kopyasına sahip başka bir sürücü varken verilerin kaldığını hızlı bir şekilde test edebiliriz, aynı sürümü burada tutacağız.

mdadm --create /dev/md2 --level=mirror --metadata=0.90 --raid-devices=2 missing /dev/sdb3

Her şeyin çalıştığını test etmek için monte edin

mkdir /mnt/test
mount /dev/md2 /mnt/test

verilerinizi kontrol edin

   ls -l /mnt/test

Her şey yolunda görünüyorsa, sürücüyü çıkarın ve yeniden boyutlandırın.

unmount /mnt/md2
resize2fs /dev/md2

Her şey yolunda olduğunda, diziye diğer sürücüyü ekleyebilirsiniz.

mdadm --add /dev/md2 /dev/sdb3

ve sürücülerin yeniden senkronize edilmesini bekleyin

cat / proc / mdstat


Özel bir öneriniz var mı? yani atmam gereken adımlar?
Paul Schreiber

yukarıdaki düzenlememe bak
Silverfire

/ dev / md2 zaten var. Neden yeniden oluşturmak istiyorum? Ve: Bunun gerçekleşmesi için bir kurtarma diskini başlatmam gerekir mi? Bunu canlı olarak yeniden boyutlandırmamın bir yolu var mı?
Paul Schreiber

Canlı, belki değil, ancak bir yeniden başlatma ile yapabilirsiniz, birincil önyükleme sürücüsünü diziden kaldırırsanız, eksik bir sürücüyle yeni bir dizi oluşturabilirsiniz (ad / dev / md3 veya başka bir şey), sistem daha sonra yeni sürücü / raid dizisini önyükleyecek ve eski olanı ekleyebilirsiniz
Silverfire

Muhtemelen en kolay olan şey sadece yeni bir dizideki yedeklemeden geri yüklemektir.
Silverfire

2

Bakarak , / proc / bölmeler , bu linux düşündüğü aşikar olduğunu sda3 ve sdb3 onlardan daha küçüktür.

Bölümlerin boyutlarını toplama

8       17      96358 sdb1
8       18    3903795 sdb2
8       19  152248005 sdb3

ve diskin boyutundan çok daha düşük bir sayı elde edersiniz.

8       16  488386584 sdb

1024 baytlık 152248005 blok, boyutla tutarlıdır mdadm --growve md2resize2fs için rapor vermektedir .

Başlangıçta bu bölümleri daha küçük bir boyutla oluşturdunuz, daha sonra disklerin geri kalanını kullanmak için yeniden oluşturdunuz mu? Öyleyse, yeniden başlatma, çekirdeğin bölüm tablosunu yeniden okumasına izin vermelidir. Bundan sonra, RAID aygıtını büyütmek ve dosya sistemini yeniden boyutlandırmak çalışmalıdır.


Evet, aynen bunu yaptım.
Paul Schreiber

Makine yeniden başlatıldığında asılı kaldı. Araştırmak için ...
Paul Schreiber
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.