Re: замена диска в mdadm-raid-1 с расширением массива

2016-11-26 Пенетрантность Mikhail A Antonov

  
  
25.11.2016 21:57, dimas пишет:

  каков должен быть порядок действий?

Создаёшь на новом 1Т диске два раздела. Один на 300-500м под /boot,
второй для всего остального под lvm
Метишь их что они linux raid
Создаёшь два "битых" рейда (можно указать что один из дисков missing
На первом создаёшь фс и копируешь туда /boot, второй используешь как
pv для lvm
Переносишь всё своё барахло внутрь lvm,
Удаляешь старую разметку на старом 1Т диске
Переразбиваешь старый диск так же как новый
Добавляешь его в рейд к новому.
Не забудь про загрузчик в mbr.

Перейдя на lvm ты забудешь про описанные тобой проблемы и всё это
будет решаться даже без выключения компа если диски нагорячую можно
менять.


  и еще бонусный вопрос: старый 500Г диск хочу оставить и иногда rsync-ать на него
содержимое массива (допустим, за вычетом кинца, когда оно превысит 400Г). можно
как-то превратить его из половинки рейда в просто раздел, чтобы фс со всем
файлОм осталась при этом как есть? типа обнулить там рейд-суперблок, чтоб был
просто раздел и на нем просто фс?


Я бы его одной большой фс примонтировал.
  




signature.asc
Description: OpenPGP digital signature


замена диска в mdadm-raid-1 с расширением массива

2016-11-25 Пенетрантность dimas
всем доброго!
имеется софт-рейд (mdadm) raid1-зеркало (тончее, два). изначально был один 500Г
диск, на нем вся файлопомойка. потом докупил я другой, на 1Т (с расчетом на то,
что когда-нибудь, в светлом будущем, поменяю маленький тоже на терабайтный),
и собрал из них реёд-зеркало.
недавно маленький диск стал чего-то отваливаться из массива с кучей всякого в
dmesg, ну и светлое будущее наступило - купил новый на терабайт.

сейчас конфигурация такая: на каждом из дисков есть два раздела - один на 15Г
(маленькое зеркало для бэкапов) и второй... так, тут выясняются интересные
подробности - на маленьком диске, оказывается, раздел на 400Г, а на большом -
на 900, ну а зеркало в итоге - по размеру меньшей из половинок... блин, я
думал, разделы одинаковые))


srv> ~$ lsblk | grep -v "sda"
NAME  MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sdb 8:16   0 465,8G  0 disk  
├─sdb1  8:17   0 1K  0 part  
├─sdb2  8:18   0   400G  0 part  
│ └─md126   9:126  0   400G  0 raid1 /media/svalka
└─sdb5  8:21   015G  0 part  
sdc 8:32   0 931,5G  0 disk  
├─sdc1  8:33   0 1K  0 part  
├─sdc2  8:34   0 912,4G  0 part  
│ └─md126   9:126  0   400G  0 raid1 /media/svalka
└─sdc5  8:37   015G  0 part

srv> ~$ sudo fdisk -l /dev/sdb /dev/sdc
[sudo] password for srv: 

Disk /dev/sdb: 465,8 GiB, 500107862016 bytes, 976773168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x000cc92b

Device Boot Start   End   Sectors  Size Id Type
/dev/sdb12048 137901959 137899912 65,8G  5 Extended
/dev/sdb2   137901960 976768064 838866105  400G fd Linux raid autodetect
/dev/sdb54096  31459240  31455145   15G fd Linux raid autodetect

Partition table entries are not in disk order.
Disk /dev/sdc: 931,5 GiB, 1000204886016 bytes, 1953525168 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: dos
Disk identifier: 0x2ab8c2ce

Device BootStartEndSectors   Size Id Type
/dev/sdc1 63   40066109   40066047  19,1G  5 Extended
/dev/sdc2   40066110 1953525167 1913459058 912,4G fd Linux raid autodetect
/dev/sdc5126   31455269   3145514415G fd Linux raid autodetect

Partition table entries are not in disk order.


вот данные самого зеркала:

srv> ~$ sudo mdadm -D /dev/md/svalka
[sudo] password for srv: 
/dev/md/svalka:
Version : 1.2
  Creation Time : Wed Aug 10 19:52:01 2011
 Raid Level : raid1
 Array Size : 419431892 (400.00 GiB 429.50 GB)
  Used Dev Size : 419431892 (400.00 GiB 429.50 GB)
   Raid Devices : 2
  Total Devices : 2
Persistence : Superblock is persistent

Update Time : Fri Nov 25 20:40:22 2016
  State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

   Name : srv:svalka  (local to host srv)
   UUID : 992b06af:42dd8b35:bc2a3843:e50f2e6b
 Events : 5494

Number   Major   Minor   RaidDevice State
   3   8   180  active sync   /dev/sdb2
   2   8   341  active sync   /dev/sdc2
srv> ~$ cat /proc/mdstat 
Personalities : [raid1] 
md126 : active raid1 sdb2[3] sdc2[2]
  419431892 blocks super 1.2 [2/2] [UU]
  
unused devices: 

маленькое на 15Г сейчас просто остановлено, но с ним проще - там ничего
ресайзить не надо.

а из большого же я хочу изъять 500Г диск, взамен него поставить 1Т, расширить
зеркало до 900Г.
каков должен быть порядок действий? мне видится как-то так:
0. разметить новый диск. по идее, туда бы просто склонировать таблицу разделов.
чем это сделать? parted? sfdisk? или может оказаться, что размер (или там
количество блоков) чуть-чуть не совпадает, и лучше ручками?
1. sudo mdadm /dev/mdXXX --fail /dev/sdb2
массив перейдет в состояние degraded
2. sudo mdadm /dev/mdXXX --add /dev/sdXY
где sdXY - раздел на новом диске
3. sudo mdadm --grow -z max
или как-то так...
4. sudo resize2fs -p /dev/mdXXX
да, фс - ext2
5. ...
6. profit!

все верно? или, может быть, можно до добавления нового диска, когда массив
будет в degraded, сделать grow и resize2fs, а потом уже добавлять второй диск,
чтобы оно только они раз засинкалось? такой фокус возможен? а то сначала
синкать, а потом все эти гровы и фс-ресайзы - опять синкать-пересинкать.. или
там синкать особо нечего будет?

и еще бонусный вопрос: старый 500Г диск хочу оставить и иногда rsync-ать на него
содержимое массива (допустим, за вычетом кинца, когда оно превысит 400Г). можно
как-то превратить его из половинки рейда в просто раздел, чтобы фс со всем
файлОм осталась при этом как есть? типа обнулить там рейд-суперблок, чтоб был
просто раздел и на нем просто фс?