LINUX.ORG.RU

parted + raid10 - Изменить размер и передвинуть разделы на RAID 10

 ,


0

1

Здравствуйте!

Не смог найти однозначной информации по такому вопросу:

Имеется программный RAID.
Мне необходимо передвинуть и увеличить разделы на которых располагается /var и которые находятся в массиве RAID 10.
А за счёт освободившегося пространства увеличить разделы на которых располагается корень (тоже RAID 10)

/boot и swap располагаются на отдельных разделах и перемещаться/изменяться не будут.

Свободное место на дисках есть.
Таблица разделов: msdos.
/boot и swap - на первичных разделах
/ и /var - в расширенном разделе.

Для перемещения и изменения разделов планирую использовать parted.

Вопросы:

1. Можно ли это сделать прямо из системы и не разбирая массивы?
2. Если нет, то какая последовательность действий?
3. Соберутся ли массивы командой mdamd --assemble --scan после перемещений/изменений разделов или массивы нужно будет создавать заново?

Заранее благодарю за ответы!

Вывод cat /proc/mdstat с моими комментариями:

Personalities : [raid1] [raid10] 
md3 : active raid10 sda6[0] sdf6[3] sde6[2] sdd6[1] ### ЭТО /var
      14690304 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
      
md2 : active raid10 sda5[0] sdf5[4] sde5[2] sdd5[1] ### ЭТО /
      4190208 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
      
md1 : active (auto-read-only) raid10 sda2[0] sdf2[3] sde2[2] sdd2[1] ### ЭТО SWAP
      33542144 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU]
      
md0 : active raid1 sda1[0] sdf1[4] sde1[2] sdd1[1] ### ЭТО /boot
      264768 blocks super 1.2 [4/4] [UUUU]
      
unused devices: <none>
Вывод fdisk -l :
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 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
Disk identifier: 0x0002025c

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *          63      530144      265041   fd  Linux raid autodetect ### ЭТО /boot
/dev/sda2          530145    34105994    16787925   fd  Linux raid autodetect ### ЭТО swap
/dev/sda3        34105995  1953520064   959707035    5  Extended
/dev/sda5        34106058    38298959     2096451   fd  Linux raid autodetect ### ЭТО /
/dev/sda6        38299023    52998434     7349706   fd  Linux raid autodetect ### ЭТО /var
### то же самое по дискам /dev/sdd, /dev/sde, /dev/sdf. Диски одинаковые и разбиты одинаково.

### ниже идут разделы на RAID

Disk /dev/md0: 271 MB, 271122432 bytes
2 heads, 4 sectors/track, 66192 cylinders, total 529536 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
Disk identifier: 0x00011616

    Device Boot      Start         End      Blocks   Id  System
/dev/md0p1   *           4      529535      264766   83  Linux ### ЭТО /boot

Disk /dev/md1: 34.3 GB, 34347155456 bytes
2 heads, 4 sectors/track, 8385536 cylinders, total 67084288 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0x0006ae56

    Device Boot      Start         End      Blocks   Id  System
/dev/md1p1            2048    67084287    33541120   82  Linux swap / Solaris ### ЭТО swap

Disk /dev/md2: 4290 MB, 4290772992 bytes
2 heads, 4 sectors/track, 1047552 cylinders, total 8380416 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0xdbd42bdb

    Device Boot      Start         End      Blocks   Id  System
/dev/md2p1            2048     8380415     4189184   83  Linux ### ЭТО /

Disk /dev/md3: 15.0 GB, 15042871296 bytes
2 heads, 4 sectors/track, 3672576 cylinders, total 29380608 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 524288 bytes / 1048576 bytes
Disk identifier: 0xa5e9fab7

    Device Boot      Start         End      Blocks   Id  System
/dev/md3p1            2048    29380607    14689280   83  Linux ### ЭТО /var
Вывод parted :
(parted) select /dev/sda
Using /dev/sda
(parted) print                                                            
Model: ATA ST1000NM0011 (scsi)
Disk /dev/sda: 1000GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type      File system  Flags
 1      32,3kB  271MB   271MB   primary                boot, raid ### ЭТО /boot
 2      271MB   17,5GB  17,2GB  primary                raid ### ЭТО swap
 3      17,5GB  1000GB  983GB   extended
 5      17,5GB  19,6GB  2147MB  logical                raid ### ЭТО /
 6      19,6GB  27,1GB  7526MB  logical                raid ### ЭТО /var
### то же самое по дискам /dev/sdd, /dev/sde, /dev/sdf

### ниже идут разделы на RAID

(parted) select /dev/md2 ### ЗДЕСЬ / 
Using /dev/md2
(parted) print                                                            
Model: Linux Software RAID Array (md)
Disk /dev/md2: 4291MB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  4291MB  4290MB  primary  ext4
# --------------------------------------------------------------------
(parted) select /dev/md2p1                                                
Using /dev/md2p1
(parted) print                                                            
Model: Unknown (unknown)
Disk /dev/md2p1: 4290MB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0,00B  4290MB  4290MB  ext4

# ====================================================================

(parted) select /dev/md3 ### ЗДЕСЬ /var
Using /dev/md3
(parted) print                                                            
Model: Linux Software RAID Array (md)
Disk /dev/md3: 15,0GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  15,0GB  15,0GB  primary  ext4
# --------------------------------------------------------------------
(parted) select /dev/md3p1
Using /dev/md3p1
(parted) print
Model: Unknown (unknown)
Disk /dev/md3p1: 15,0GB
Sector size (logical/physical): 512B/512B
Partition Table: loop

Number  Start  End     Size    File system  Flags
 1      0,00B  15,0GB  15,0GB  ext4

Капец какой. Зачем было создавать таблицы разделов внутри массивов, а не создавать файловые системы прямо на массивах? Зачем создавать отдельные массивы из разделов, а не один массив из целых дисков? Так извращаться только ради того, чтобы /boot был четырехкратно зеркалирован?

Вообще при использовании разделов менять разбивку это ночной кошмар. Чем голову ломать лучше все забекапить, переразбить и восстановить из бекапа. Загрузившись с рескью сиди.

Традиционная схема это массив из дисков, на массиве два раздела, /boot и lvm pv.

iliyap ★★★ ()

Переделывай всё. Я бы просто сделал 4 /boot (на каждом диске по /boot'y) и по разделу LVM (pv). Занесешь 4 pv в одину группу VG, а затем нарезай LV в каких хочешь конфигурациях, raid0/1/5/6/10 каждый lv может быть своего типа рейд.

anonymous ()
Ответ на: комментарий от anonymous

Я бы просто сделал 4 /boot (на каждом диске по /boot'y) и по разделу LVM (pv).

swap тоже можно разместить на LVM?

Я в своё время не стал связываться с LVM, потому-что считал что будут какие-то ненужные расходы по вычислительной мощности.

Как LVM сказывается на расходовании ресурсов сервера и на надёжности?

san-sanych ()
Ответ на: комментарий от anonymous

Я бы просто сделал 4 /boot (на каждом диске по /boot'y) и по разделу LVM (pv).

Спасибо за совет. Посмотрю в сторону LVM.

А по текущей ситуации: если двигать и изменять размеры разделов, то нужно будет пересобирать массивы или mdadm --assemble --scan найдет все и соберёт?

Если из самой системы, отключив массив с /var (/dev/md3) - можно будет эти разделы передвигать/увеличивать прямо из живой системы?

Можно увеличить размер корня прямо из системы, в моём случае?

А про LVM уже начинаю читать.

san-sanych ()
Ответ на: комментарий от anonymous

Думаю, с LVM`ом пока повременю. Не вижу в нём никакого смысла.

san-sanych ()
Ответ на: комментарий от san-sanych

необходимость есть, lvm позволит больше никогда не попасть в такую ситуацию, и ресурсов на него никаких не тратится. Если ты делаешь raid, то следом идут lvm/zvol под данные, а уже в lvm/zvol ты можешь ставить любую fs.

erzentd ()

полностью согласен с iliyap.

LVM. Он и сделан для таких целей (что бы потом не приходилось разделы двигать).

Делаешь однин большой массив (10), поверх него LVM. Точнее, как написано выше, отдельно только boot и swap, остальное - один большой VG.

Зачем в данном случае городить Extended (а в нем разделы), а потом создавать таблицу в этих md разделах? Какие во всем этом преимущестава? Получается какая-то сложная схема, не дающая никаких плюсов. Тогда бы уж создали один большой md (raid10) и били бы его на разделы (таблица на нем)...

Если есть возможность временно перенести данные и заново все переразбить, лучше сразу так и сделать.

Лично мне кажется, что все должно выглядеть как то так:

md0 (sdX1) - boot, 
md1 (sdX2) - swap (можно и без него), 
md2 (sdX3) - / (можно и без него),
md3 (sdX4)  - все остальное, тут либо разделы md3XX (если не хотите LVM), либо LVM, либо что то вроде zfs.

samson ★★ ()
Ответ на: комментарий от san-sanych

С разделом, на котором располагается смонтированная файловая система почти ничего нельзя делать. Можно только двигать верхнюю границу вверх. Сначала надо отмонтировать раздел. Поэтому корневую файловую систему можно будет изменить только с ливсиди.

iliyap ★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.