На сервере в software RAID1 установлены 2 диска по 1Тб, задача состоит в том, чтобы заменить эти два диска на диски 2Тб с сохранением всей информации.
Оригинал заметки отсюда.
Исходные данные:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[0] sdb3[1]
967979584 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
262080 blocks [2/2] [UU]
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 256M 0 part
│ └─md0 9:0 0 256M 0 raid1 /boot
├─sdb2 8:18 0 8G 0 part
└─sdb3 8:19 0 923.3G 0 part
└─md1 9:1 0 923.1G 0 raid1 /
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 256M 0 part
│ └─md0 9:0 0 256M 0 raid1 /boot
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 923.3G 0 part
└─md1 9:1 0 923.1G 0 raid1 /
# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
rootfs 909G 713G 150G 83% /
udev 10M 0 10M 0% /dev
tmpfs 390M 256K 390M 1% /run
/dev/disk/by-uuid/0955d7b0-f8ff-4655-9653-93ce744e926a 909G 713G 150G 83% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.4G 0 2.4G 0% /run/shm
/dev/md0 248M 24M 212M 11% /boot
# fdisk -l /dev/sda /dev/sdb
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: 0x0000519d
Device Boot Start End Blocks Id System
/dev/sda1 2048 526335 262144 fd Linux raid autodetect
/dev/sda2 526336 17303551 8388608 82 Linux swap / Solaris
/dev/sda3 17303552 1953525167 968110808 fd Linux raid autodetect
Disk /dev/sdb: 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: 0x00049591
Device Boot Start End Blocks Id System
/dev/sdb1 2048 526335 262144 fd Linux raid autodetect
/dev/sdb2 526336 17303551 8388608 83 Linux
/dev/sdb3 17303552 1953525167 968110808 fd Linux raid autodetect
# cat /etc/issue
Debian GNU/Linux 7 \n \l
# apt-cache policy grub2
grub2:
Установлен: (отсутствует)
Кандидат: 1.99-27+deb7u2
Таблица версий:
1.99-27+deb7u2 0
500 http://ftp.ru.debian.org/debian/ wheezy/main amd64 Packages
1. GRUB должен быть установлен на обоих дисках (sda/sdb):
# dpkg-reconfigure grub-pc
Installation finished. No error reported.
Installation finished. No error reported.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
Found memtest86+ image: /memtest86+.bin
Found memtest86+ multiboot image: /memtest86+_multiboot.bin
done
Проверяем установился ли GRUB:
# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
# dd if=/dev/sdb bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
После того как загрузчик установлен на оба диска, желательно проверить, что загрузка работает с обоих дисков.
2. Отключаем сервер, пишем в ДЦ, чтобы заменили первый диск. После замены диска включаем сервер.
После включения видим, пустой диск /dev/sda:
# fdisk -l /dev/sda
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Disk /dev/sda doesn't contain a valid partition table
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[1]
967979584 blocks super 1.2 [2/1] [_U]
md0 : active raid1 sdb1[1]
262080 blocks [2/1] [_U]
3. Переносим таблицу разделов с /dev/sdb на /dev/sda:
# sfdisk -d /dev/sdb | sfdisk --force /dev/sda
# fdisk -l /dev/sda
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 2048 526335 262144 fd Linux raid autodetect
/dev/sda2 526336 17303551 8388608 83 Linux
/dev/sda3 17303552 1953525167 968110808 fd Linux raid autodetect
4. Расширяем раздел /dev/sda3:
# fdisk /dev/sda
...
Command (m for help): d
Partition number (1-4): 3
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (1-4, default 3): 3
First sector (17303552-4294967295, default 17303552):
Using default value 17303552
Last sector, +sectors or +size{K,M,G} (17303552-4294967294, default 4294967294):
Using default value 4294967294
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)
Command (m for help): p
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 2048 526335 262144 fd Linux raid autodetect
/dev/sda2 526336 17303551 8388608 83 Linux
/dev/sda3 17303552 4294967294 2138831871+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
5. Добавляем новые разделы в RAID:
# mdadm --manage /dev/md0 --add /dev/sda1
mdadm: added /dev/sda1
# mdadm --manage /dev/md1 --add /dev/sda3
mdadm: added /dev/sda3
Ждем окончания ребилда:
# watch cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[2] sdb3[1]
967979584 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 0.0% (751104/967979584) finish=193.1min speed=83456K/sec
md0 : active raid1 sda1[0] sdb1[1]
262080 blocks [2/2] [UU]
6. После того, как прошел ребилд, снова устанавливаем GRUB:
# dpkg-reconfigure grub-pc
Проверка:
# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
# dd if=/dev/sdb bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
7. Перезагружаем, убеждаемся, что система загружается с любого диска.
Если все ок, то можно менять второй диск.
8. Отключаем сервер, просим поменять второй диск, включаем сервер.
Аналогично делаем все и для 2 диска.
Пункт 4 делать не надо, т.к. таблица разделов итак уже такая, какой и должна быть.
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[2]
967979584 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
262080 blocks [2/1] [U_]
# fdisk -l /dev/sdb
Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
# fdisk -l /dev/sda /dev/sdb
Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 526335 262144 fd Linux raid autodetect
/dev/sdb2 526336 17303551 8388608 83 Linux
/dev/sdb3 17303552 4294967294 2138831871+ fd Linux raid autodetect
# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
# mdadm --manage /dev/md1 --add /dev/sdb3
mdadm: added /dev/sdb3
# watch cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[3] sda3[2]
967979584 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.0% (929088/967979584) finish=86.7min speed=185817K/sec
md0 : active raid1 sdb1[1] sda1[0]
262080 blocks [2/2] [UU]
После окончания ребилда снова ставим GRUB:
# dpkg-reconfigure grub-pc
Расширяем раздел и делаем ресинк:
# mdadm --grow /dev/md1 --size=max
mdadm: component size of /dev/md1 has been set to 2138700799K
Оригинал заметки отсюда.
Исходные данные:
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[0] sdb3[1]
967979584 blocks super 1.2 [2/2] [UU]
md0 : active raid1 sda1[0] sdb1[1]
262080 blocks [2/2] [UU]
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb 8:16 0 931.5G 0 disk
├─sdb1 8:17 0 256M 0 part
│ └─md0 9:0 0 256M 0 raid1 /boot
├─sdb2 8:18 0 8G 0 part
└─sdb3 8:19 0 923.3G 0 part
└─md1 9:1 0 923.1G 0 raid1 /
sda 8:0 0 931.5G 0 disk
├─sda1 8:1 0 256M 0 part
│ └─md0 9:0 0 256M 0 raid1 /boot
├─sda2 8:2 0 8G 0 part [SWAP]
└─sda3 8:3 0 923.3G 0 part
└─md1 9:1 0 923.1G 0 raid1 /
# df -h
Файловая система Размер Использовано Дост Использовано% Cмонтировано в
rootfs 909G 713G 150G 83% /
udev 10M 0 10M 0% /dev
tmpfs 390M 256K 390M 1% /run
/dev/disk/by-uuid/0955d7b0-f8ff-4655-9653-93ce744e926a 909G 713G 150G 83% /
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 2.4G 0 2.4G 0% /run/shm
/dev/md0 248M 24M 212M 11% /boot
# fdisk -l /dev/sda /dev/sdb
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: 0x0000519d
Device Boot Start End Blocks Id System
/dev/sda1 2048 526335 262144 fd Linux raid autodetect
/dev/sda2 526336 17303551 8388608 82 Linux swap / Solaris
/dev/sda3 17303552 1953525167 968110808 fd Linux raid autodetect
Disk /dev/sdb: 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: 0x00049591
Device Boot Start End Blocks Id System
/dev/sdb1 2048 526335 262144 fd Linux raid autodetect
/dev/sdb2 526336 17303551 8388608 83 Linux
/dev/sdb3 17303552 1953525167 968110808 fd Linux raid autodetect
# cat /etc/issue
Debian GNU/Linux 7 \n \l
# apt-cache policy grub2
grub2:
Установлен: (отсутствует)
Кандидат: 1.99-27+deb7u2
Таблица версий:
1.99-27+deb7u2 0
500 http://ftp.ru.debian.org/debian/ wheezy/main amd64 Packages
1. GRUB должен быть установлен на обоих дисках (sda/sdb):
# dpkg-reconfigure grub-pc
Installation finished. No error reported.
Installation finished. No error reported.
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
Found memtest86+ image: /memtest86+.bin
Found memtest86+ multiboot image: /memtest86+_multiboot.bin
done
# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
# dd if=/dev/sdb bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
После того как загрузчик установлен на оба диска, желательно проверить, что загрузка работает с обоих дисков.
2. Отключаем сервер, пишем в ДЦ, чтобы заменили первый диск. После замены диска включаем сервер.
После включения видим, пустой диск /dev/sda:
# fdisk -l /dev/sda
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Disk /dev/sda doesn't contain a valid partition table
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[1]
967979584 blocks super 1.2 [2/1] [_U]
md0 : active raid1 sdb1[1]
262080 blocks [2/1] [_U]
3. Переносим таблицу разделов с /dev/sdb на /dev/sda:
# sfdisk -d /dev/sdb | sfdisk --force /dev/sda
# fdisk -l /dev/sda
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 2048 526335 262144 fd Linux raid autodetect
/dev/sda2 526336 17303551 8388608 83 Linux
/dev/sda3 17303552 1953525167 968110808 fd Linux raid autodetect
4. Расширяем раздел /dev/sda3:
# fdisk /dev/sda
...
Command (m for help): d
Partition number (1-4): 3
Command (m for help): n
Partition type:
p primary (2 primary, 0 extended, 2 free)
e extended
Select (default p): p
Partition number (1-4, default 3): 3
First sector (17303552-4294967295, default 17303552):
Using default value 17303552
Last sector, +sectors or +size{K,M,G} (17303552-4294967294, default 4294967294):
Using default value 4294967294
Command (m for help): t
Partition number (1-4): 3
Hex code (type L to list codes): fd
Changed system type of partition 3 to fd (Linux raid autodetect)
Command (m for help): p
Disk /dev/sda: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 2048 526335 262144 fd Linux raid autodetect
/dev/sda2 526336 17303551 8388608 83 Linux
/dev/sda3 17303552 4294967294 2138831871+ fd Linux raid autodetect
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
5. Добавляем новые разделы в RAID:
# mdadm --manage /dev/md0 --add /dev/sda1
mdadm: added /dev/sda1
# mdadm --manage /dev/md1 --add /dev/sda3
mdadm: added /dev/sda3
Ждем окончания ребилда:
# watch cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[2] sdb3[1]
967979584 blocks super 1.2 [2/1] [_U]
[>....................] recovery = 0.0% (751104/967979584) finish=193.1min speed=83456K/sec
md0 : active raid1 sda1[0] sdb1[1]
262080 blocks [2/2] [UU]
6. После того, как прошел ребилд, снова устанавливаем GRUB:
# dpkg-reconfigure grub-pc
Проверка:
# dd if=/dev/sda bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
# dd if=/dev/sdb bs=512 count=1 | xxd | grep -i grub
...
0000180: 4752 5542 2000 4765 6f6d 0048 6172 6420 GRUB .Geom.Hard
7. Перезагружаем, убеждаемся, что система загружается с любого диска.
Если все ок, то можно менять второй диск.
8. Отключаем сервер, просим поменять второй диск, включаем сервер.
Аналогично делаем все и для 2 диска.
Пункт 4 делать не надо, т.к. таблица разделов итак уже такая, какой и должна быть.
# cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sda3[2]
967979584 blocks super 1.2 [2/1] [U_]
md0 : active raid1 sda1[0]
262080 blocks [2/1] [U_]
# fdisk -l /dev/sdb
Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Disk /dev/sdb doesn't contain a valid partition table
# sfdisk -d /dev/sda | sfdisk --force /dev/sdb
# fdisk -l /dev/sda /dev/sdb
Disk /dev/sdb: 4000.8 GB, 4000787030016 bytes
255 heads, 63 sectors/track, 486401 cylinders, total 7814037168 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: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 2048 526335 262144 fd Linux raid autodetect
/dev/sdb2 526336 17303551 8388608 83 Linux
/dev/sdb3 17303552 4294967294 2138831871+ fd Linux raid autodetect
# mdadm --manage /dev/md0 --add /dev/sdb1
mdadm: added /dev/sdb1
# mdadm --manage /dev/md1 --add /dev/sdb3
mdadm: added /dev/sdb3
# watch cat /proc/mdstat
Personalities : [raid1]
md1 : active raid1 sdb3[3] sda3[2]
967979584 blocks super 1.2 [2/1] [U_]
[>....................] recovery = 0.0% (929088/967979584) finish=86.7min speed=185817K/sec
md0 : active raid1 sdb1[1] sda1[0]
262080 blocks [2/2] [UU]
После окончания ребилда снова ставим GRUB:
# dpkg-reconfigure grub-pc
Расширяем раздел и делаем ресинк:
# mdadm --grow /dev/md1 --size=max
mdadm: component size of /dev/md1 has been set to 2138700799K
Снова ждем ресинк.
После окончания ресинка осталось только расширить ФС:
# resize2fs /dev/md1
Проверяем что все расширилось как надо:
# df -h
Комментариев нет:
Отправить комментарий