Странная разбивка RAID1 (разделы md0pN внутри sdX) (не могу разобраться, как с ней изменить размер раздела)

Обсуждение настройки и работы сервисов, резервирования, сетевых настроек и вопросов безопасности ОС для молодых и начинающих системных администраторов.

Модератор: SLEDopit

vkapas
Сообщения: 191
ОС: Ubuntu 14.04, 16.04

Странная разбивка RAID1 (разделы md0pN внутри sdX)

Сообщение vkapas »

Есть софтовый RAID1, на котором крутится Ubuntu 14, который создан её же установщиком.
Стоит задача поменять диски в этом RAID1 на более ёмкие, увеличив при этом размер раздела с данными.

Изучил несколько HOWTO; везде написано (например), что сначала разделы нужно менять на дисках, то есть:

Код: Выделить всё

fdisk /dev/sdX

и после запускать процесс расширения RAID (mdadm --grow /dev/mdN --size=max).

Затык в том, что в моём случае разделы, которые монтируются в /, home, swap — созданы внутри рейда, на каждом же диске лишь один раздел размером во весь диск:

Код: Выделить всё

# fdisk -l /dev/sda

Диск /dev/sda: 1000.2 Гб, 1000204886016 байт
255 головок, 63 секторов/треков, 121601 цилиндров, всего 1953525168 секторов
Units = секторы of 1 * 512 = 512 bytes
Размер сектора (логического/физического): 512 байт / 4096 байт
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Идентификатор диска: 0x00000000

Устр-во Загр     Начало       Конец       Блоки   Id  Система
/dev/sda1   *        2048  1953523711   976760832   fd  Автоопределение Linux raid

# lsblk
NAME      MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINT
sda         8:0    0 931,5G  0 disk
└─md0       9:0    0 931,4G  0 raid1
  ├─md0p1 259:0    0  37,3G  0 md    /
  ├─md0p2 259:1    0     1K  0 md
  ├─md0p5 259:2    0   9,3G  0 md    [SWAP]
  └─md0p6 259:3    0 884,8G  0 md    /home
sdb         8:16   0 931,5G  0 disk
└─md0       9:0    0 931,4G  0 raid1
  ├─md0p1 259:0    0  37,3G  0 md    /
  ├─md0p2 259:1    0     1K  0 md
  ├─md0p5 259:2    0   9,3G  0 md    [SWAP]
  └─md0p6 259:3    0 884,8G  0 md    /home

# mdadm --detail /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Thu Apr  9 19:29:38 2015
     Raid Level : raid1
     Array Size : 976629568 (931.39 GiB 1000.07 GB)
  Used Dev Size : 976629568 (931.39 GiB 1000.07 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Mon Dec 25 00:47:21 2017
          State : clean
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : service:0
           UUID : e00bad9f:d733d92e:89edf7da:e29a5b00
         Events : 5633678

    Number   Major   Minor   RaidDevice State
       2       8       0        1      active sync   /dev/sda
       3       8       16        0      active sync   /dev/sdb

# mount -l
/dev/md0p1 on / type ext4 (rw,errors=remount-ro)
proc on /proc type proc (rw,noexec,nosuid,nodev)
sysfs on /sys type sysfs (rw,noexec,nosuid,nodev)
none on /sys/fs/cgroup type tmpfs (rw)
none on /sys/fs/fuse/connections type fusectl (rw)
none on /sys/kernel/debug type debugfs (rw)
none on /sys/kernel/security type securityfs (rw)
udev on /dev type devtmpfs (rw,mode=0755)
devpts on /dev/pts type devpts (rw,noexec,nosuid,gid=5,mode=0620)
tmpfs on /run type tmpfs (rw,noexec,nosuid,size=10%,mode=0755)
none on /run/lock type tmpfs (rw,noexec,nosuid,nodev,size=5242880)
none on /run/shm type tmpfs (rw,nosuid,nodev)
none on /run/user type tmpfs (rw,noexec,nosuid,nodev,size=104857600,mode=0755)
none on /sys/fs/pstore type pstore (rw)
/dev/md0p6 on /home type ext4 (rw)
systemd on /sys/fs/cgroup/systemd type cgroup (rw,noexec,nosuid,nodev,none,name=systemd)
gvfsd-fuse on /run/user/1000/gvfs type fuse.gvfsd-fuse (rw,nosuid,nodev,user=user)

(Выше, чтобы не запутать, привёл код при работе рейда со старыми дисками. Всё равно при копировании их таблицы разделов на новые диски (большего размера) ситуация, конечно, не меняется.)

При попытке изменить раздел внутри рейда получаю ошибку об отстутствующей таблице разделов:

Код: Выделить всё

# fdisk /dev/md0p6
Устройство не содержит ни верной таблицы разделов DOS, ни метки диска Sun, SGI или OSF
Building a new DOS disklabel with disk identifier 0x1fca23fb.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Предупреждение: неверный флаг 0x0000 таблицы разделов 4 будет исправлен записью

The device presents a logical sector size that is smaller than
the physical sector size. Aligning to a physical sector (or optimal
I/O) size boundary is recommended, or performance may be impacted.


То есть путь этот, похоже, неверный.

Как правильно в моём случае изменить раздел при переезде RAID1 на диски большего объёма?
Интересует /dev/md0p6, примонтированный в /home.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18635
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Странная разбивка RAID1 (разделы md0pN внутри sdX)

Сообщение Bizdelnick »

vkapas писал(а):
25.12.2017 02:50
При попытке изменить раздел внутри рейда получаю ошибку об отстутствующей таблице разделов:

Нужно указывать fdisk путь не к разделу, а к массиву, на котором он создан: fdisk /dev/md0.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

vkapas
Сообщения: 191
ОС: Ubuntu 14.04, 16.04

Re: Странная разбивка RAID1 (разделы md0pN внутри sdX)

Сообщение vkapas »

Да, спасибо, сам почему-то не догадался.

В моём случае размер массива можно менять только после замены ибоих HDD на диски больше размера? — то есть массив RAID1 не может быть больше чем размер самого меньшего диска в нём, верно? (В подобных инструкциях размеры разделов обычно увеличивают по мере замены дисков.)

И, самое главное: нет ли опасности потерять данные при пересоздании раздела RAID1? Если я правильно понял, изменить размер раздела без его удаления не получится.
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18635
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Странная разбивка RAID1 (разделы md0pN внутри sdX)

Сообщение Bizdelnick »

vkapas писал(а):
25.12.2017 11:40
В моём случае размер массива можно менять только после замены ибоих HDD на диски больше размера? — то есть массив RAID1 не может быть больше чем размер самого меньшего диска в нём, верно?

Да.

vkapas писал(а):
25.12.2017 11:40
И, самое главное: нет ли опасности потерять данные при пересоздании раздела RAID1? (Если я правильно понял, изменить размер раздела без его удаления не получится.)

Нет, проблем быть не должно, если не ошибётесь с местом начала раздела. Есть и другой вариант, более муторный: заменяете один диск, после чего массив переходит в деградированное состояние; добавляете в массив новый диск; после востановления повторяете операцию со вторым диском.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали:

vkapas
Сообщения: 191
ОС: Ubuntu 14.04, 16.04

Re: Странная разбивка RAID1 (разделы md0pN внутри sdX)

Сообщение vkapas »

Bizdelnick писал(а):
25.12.2017 12:56
Нет, проблем быть не должно, если не ошибётесь с местом начала раздела. Есть и другой вариант, более муторный: заменяете один диск, после чего массив переходит в деградированное состояние; добавляете в массив новый диск; после востановления повторяете операцию со вторым диском.

Не совсем понял эту мысь, если честно.
Так и планировал сделать: заменить сначала один старый диск новым, затем второй (каждый через деградацию и ребилд рейда с переносом старой таблицы разделов). И затем пересоздать нужный раздел, увеличив его размер.

Разве есть другие варианты?
Спасибо сказали:

Аватара пользователя
Bizdelnick
Модератор
Сообщения: 18635
Статус: grammatikführer
ОС: Debian GNU/Linux

Re: Странная разбивка RAID1 (разделы md0pN внутри sdX)

Сообщение Bizdelnick »

Быстрый вариант: склонировать оба диска dd на новые (из другой системы, например в live-режиме), после чего заняться увеличением разделов и массива.
То, что я предложил выше, отличается от Вашего плана одним нюансом: Вы сразу создаёте раздел большого размера и вводите его в массив, а пересоздавать его потом уже не нужно.
Пишите правильно:
в консоли
вку́пе (с чем-либо)
в общем
вообще
в течение (часа)
новичок
нюанс
по умолчанию
приемлемо
проблема
пробовать
трафик
Спасибо сказали: