При написании использовались первоисточники
http://forums.dlink.com/index.php?topic=11631.0
+ мои замечания
Все, что описано ниже делаете на свой страх и риск.
Это я пугаю. Ничего страшного не произойдет(всегда можете переформатировать винты стандартным способом). Просто потеряете время.
Информация на дисках в любом случае теряется. Так что делайте сначала резервную копию.
Приготовление:
1 x DNS-323
2 x WDXXEARS HDD (1.5T или 2.0T)
1 x ramdrive funplug telnet
http://wiki.dns323.info/_media/howto:ut ... ram.tar.gz
1 x telnet tools (from windows)
Шаги:
1. Приготовление
Устанавливаем 2 x HDD в DNS-343/DNS-323
Включаем и форматируем 2 x HDD как RAID 1. (Выбираем manually Re-Build)
Это займет 1~2 часа в зависимости от размера ваших HDD.
Перегружаемся.
2. Установка telnet и fdisk на DNS-343/323
Здесь первоисточник
http://wiki.dns323.info/_media/howto:ut ... ram.tar.gz
Грузим готовый архив
http://depositfiles.com/files/f155ux9wl
Разархивируем все файлы в корень volume_1 на DNS-323
Получаем:
/fdisk
/ffp/lib/ld-uClibc.so.0
/ffp/lib/libc.so.0
/fun_plug
/lnx_bin/utelnetd
/lnx_bin/busybox3
/starttelnet.sh
Перегружаемся. Ищем “dmesg.out” на volume_1 , что скажет нам, что funplug запущен корректно.
Телнет берем отсюда.
http://depositfiles.com/files/buuqycyhf
Это putty
Запускаем. В опциях ищем “Connection” -> “Telnet” -> “Return key sends Telnet New Line instead of ^M” снимаем галочку.
3. Запускаем Telnet на DNS-323 и собираем инфу
В Session забиваем IP нашего DNS, радиокнопку ставим на telnet и подключаемся.
Видим.
Код:
stdin, stdout, etderr: 0 1 2
BusyBox v1.00-pre1 (2009.05.04-09:03+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.
Печатаем пароль рута 5784468 жмем “Enter”
Получаем приглашение “#”
I. Получаем инфу нашего raid
Код:
# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Thu Jul 8 11:57:05 2010
Raid Level : raid1
Array Size : 1951407424 (1861.01 GiB 1998.24 GB)
Device Size : 1951407424 (1861.01 GiB 1998.24 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Tue Jul 13 20:30:19 2010
State : clean
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
UUID : dd5ff27d:830089bc:3fa19952:7b5a0509
Events : 0.302663
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
Тут уже есть вся инфа, которая нам нужна:
a. Physical Size 1861.00 GiB 1998.24 GB
b. UUID dd5ff27d:830089bc:3fa19952:7b5a0509
c. Drive Config /dev/sda2, /dev/sdb2
Немного больше инфы, для уверенности
Код:
# mdadm -Es
ARRAY /dev/md0 level=raid1 num-devices=2 UUID= dd5ff27d:830089bc:3fa19952:7b5a0509
UUID должен быть таким же
Код:
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sda2[0] sdb2[1]
1951407424 blocks [2/2] [UU]
unused devices: <none>
Размер массива такой-же
Код:
# cat /mnt/HD_b4/.systemfile/raidtab2web
raiddev /dev/md0
raid-level raid1
nr-raid-disks 2
chunk-size 32
persistent-superblock 1
device /dev/sda2
raid-disk 0
device /dev/sdb2
raid-disk 1
Status Start
raid-masterdisk /dev/sda2
FirstStart 1
FormatwebFlag 0
SatamountFlag 1
SatamountFlag1 1
raidsize 1861
filesystem ext3
parti3 1
extra_status 1
Version 1.5
Размер массива совпадает
и тоже самое показывает конфигурационный файл массива
Код:
# cat /mnt/HD_b4/.systemfile/mdadm.conf
ARRAY /dev/md0 level=raid1 num-devices=2 UUID= dd5ff27d:830089bc:3fa19952:7b5a0509
UUID такой же
II. Собираем инфу о дисках
Запускаем fdisk
Код:
# /tmp/fdisk -lu
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x12e10ab3
Device Boot Start End Blocks Id System
/dev/sda1 [b]63[/b] 1060289 530113+ 82 Linux swap / Solaris
/dev/sda2 [b]2088450 3904903484[/b] 1951407517+ 83 Linux
/dev/sda4 1060290 2088449 514080 83 Linux
Partition table entries are not in disk order
Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 [b]63[/b] 1060289 530113+ 82 Linux swap / Solaris
/dev/sdb2 [b]2088450 3904903484[/b] 1951407517+ 83 Linux
/dev/sdb4 1060290 2088449 514080 83 Linux
Partition table entries are not in disk order
#
Обращаем внимание на выделенные жирным цифры. Их мы будем менять
Те что показывают начало раздела должны делиться на 8.
Берем ближайшие.
63 --> 64
2088450 --> 2088456
4. Разобьем HDD на новые разделы
Пошагово:
a. Останавливаем SMB и raid массив а также своп.
Код:
# smb stop
$Shutting down SMB services:
$Shutting down NMB services:
# raidstop md0
mdadm: stopped /dev/md0
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
unused devices: <none>
Проверяем,что md0 ушел.
Код:
# swapoff /dev/sda1
# swapoff /dev/sdb1
Убеждаемся, что диски отмонтированы
Код:
# ls /mnt
Здесь не должно быть дисков HD_a4 HD_b4 HD_a2
Если есть (возможно HD_b4), то отмонтируем его
Код:
#umount –a
или
Код:
#umount /dev/sdb4
Для HD_b4
b. Разбиение на разделы
Предупреждение. Начиная с этого шага прерывать процесс нельзя (позаботьтесь о ИБП) Иначе придется начинать с нуля, т.е. заново форматировать диски, устанавливать телнет и т.д.
Делаем это для двух дисков по-очереди для /dev/sda & /dev/sdb
Код:
# /tmp/fdisk -u /dev/sda
The number of cylinders for this disk is set to 243201.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
(e.g., DOS FDISK, OS/2 FDISK)
Command (m for help): d
Partition number (1-4): 1
Command (m for help): d
Partition number (1-4): 2
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First sector (63-3904903484, default 63): 64 <- выравниваем раздел свопа
Last sector, +sectors or +size{K,M,G} (64-1060289, default 1060289):
Using default value 1060289
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 2
First sector (63-3904903484, default 63): 2088456 <- выравниваем раздел данных
Last sector, +sectors or +size{K,M,G} (3164808-3904903484, default 3904903484):
Using default value 3904903484
Command (m for help): p
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x12e10ab3
Device Boot Start End Blocks Id System
/dev/sda1 64 1060289 530113 83 Linux
/dev/sda2 2088456 3904903484 1951407514 83 Linux
/dev/sda4 1060290 2088449 514080+ 83 Linux
Partition table entries are not in disk order
Command (m for help): t
Partition number (1-4): 1
Hex code (type L to list codes): 82
Changed system type of partition 1 to 82 (Linux swap / Solaris)
Command (m for help): p
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x12e10ab3
Device Boot Start End Blocks Id System
/dev/sda1 64 1060289 530113 82 Linux swap / Solaris
/dev/sda2 2088456 3904903484 1951407514 83 Linux
/dev/sda4 1060290 2088449 514080+ 83 Linux
Partition table entries are not in disk order
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.
#
Теперь тоже самое для /dev/sdb
Код:
# /tmp/fdisk -u /dev/sdb
Проверяем результат
Код:
# /tmp/fdisk -ul
Disk /dev/sda: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x12e10ab3
Device Boot Start End Blocks Id System
/dev/sda1 64 1060289 530113 82 Linux swap / Solaris
/dev/sda2 2088456 3904903484 1951407514 83 Linux
/dev/sda4 1060290 2088449 514080+ 83 Linux
Partition table entries are not in disk order
Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders, total 3907029168 sectors
Units = sectors of 1 * 512 = 512 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sdb1 64 1060289 530113 82 Linux swap / Solaris
/dev/sdb2 2088456 3904903484 1951407514 83 Linux
/dev/sdb4 1060290 2088449 514080+ 83 Linux
Partition table entries are not in disk order
Наши диски выровнены.
c. Создаем и запускаем своп
Код:
# mkswap /dev/sda1
# mkswap /dev/sdb1
# swapon /dev/sda1
# swapon /dev/sdb1
d. Ре-создание рэйда
Сейчас мы создадим массив, изменим uuid и т.д.
Код:
# mdadm --create /dev/md0 --level=1 --raid-devices=2 --spare-devices=0 /dev/sd[ab]2
mdadm: /dev/sdb2 appears to contain an ext2fs file system <--сообщение может быть разным
mdadm: array /dev/md0 started.
#
# cat /proc/mdstat
# raidstart md0
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sdb2[1] sda2[0]
1951171776 blocks [2/2] [UU]
[>....................] resync = 0.2% (4283200/1951171776) finish=318.0min speed=102016K/sec
unused devices: <none>
Если цифры будут немного отличаться от моих – не беда (этот лог из эксперимента, когда я не выделил под. раздел данных все доступное пространство)
Теперь мы можем идти дальше или ждать завершения синхронизации. В любом случае синхронизация должна быть выполнена до перезагрузки.
Проверяем наш новый рейд:
Код:
# mdadm -Es
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=74c57cbe:50bb78cd:d3bb65c6:eea9f0ce
# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Thu Jul 15 14:14:55 2010
Raid Level : raid1
Array Size : 1951171776 (1860.78 GiB 1998.00 GB)
Device Size : 1951171776 (1860.78 GiB 1998.00 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Jul 15 14:14:55 2010
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Rebuild Status : 0% complete
UUID : 74c57cbe:50bb78cd:d3bb65c6:eea9f0ce
Events : 0.1
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
Мы можем заметить, что UUID изменился. Запишем его в конфиг, чтоб сохранить изменения
Код:
Сначала монтируем диски
#ls /mnt
Видим только web_page
# cd /mnt
#mkdir HD_a4
#mkdir HD_b4
#mount /dev/sda4 /mnt/HD_a4
#mount /dev/sdb4 /mnt/HD_b4
# mdadm -Es > /mnt/HD_b4/.systemfile/mdadm.conf
# mdadm -Es > /mnt/HD_a4/.systemfile/mdadm.conf
# mdadm -Es > /etc/mdadm.conf
# cat /mnt/HD_b4/.systemfile/mdadm.conf
# cat /mnt/HD_a4/.systemfile/mdadm.conf
# cat /etc/mdadm.conf
ARRAY /dev/md0 level=raid1 num-devices=2 UUID=74c57cbe:50bb78cd:d3bb65c6:eea9f0ce
e. Форматируем новый массив
Отформатируем наш массив.
Так как идет ре-синхронизация это может быть медленно. Это нормально..
Код:
# mke2fs -j -m 0 -T largefile4 /dev/md0
*** Device name for mke2fs: /dev/md0
mke2fs 1.41.2 (02-Oct-2008)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
476384 inodes, 487792944 blocks
0 blocks (0.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=0
14887 block groups
32768 blocks per group, 32768 fragments per group
32 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968,
102400000, 214990848
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
This filesystem will be automatically checked every 34 mounts or
180 days, whichever comes first. Use tune2fs -c or -i to override.
exit status 0
success
Идем дальше
f. Тестируем массив
К этому шагу синхронизация должна быть закончена
У меня она длилась чуть больше 6 часов
Проверяем прогресс
Код:
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sdb2[1] sda2[0]
1951171776 blocks [2/2] [UU]
[>....................] resync = 0.2% (4283200/1951171776) finish=318.0min speed=102016K/sec
unused devices: <none>
Когда закончится, то увидим
Код:
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sdb2[1] sda2[0]
1951171776 blocks [2/2] [UU]
Проверяем массив, останавливая и запуская его
Код:
# raidstop md0
mdadm: stopped /dev/md0
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
unused devices: <none>
# raidstart md0
Raid Table Parser version V1.14_04222009
Assemble the previously created Raid array.
/tmp/spare_dsk not exist!!!
mdadm: /dev/md0 has been started with 2 drives.
Raid Level Parser version v1.02
# cat /proc/mdstat
Personalities : [linear] [raid0] [raid1]
md0 : active raid1 sda2[0] sdb2[1]
1951171776 blocks [2/2] [UU]
unused devices: <none>
#
# mdadm --detail /dev/md0
/dev/md0:
Version : 00.90.01
Creation Time : Thu Jul 15 14:14:55 2010
Raid Level : raid1
Array Size : 1951171776 (1860.78 GiB 1998.00 GB)
Device Size : 1951171776 (1860.78 GiB 1998.00 GB)
Raid Devices : 2
Total Devices : 2
Preferred Minor : 0
Persistence : Superblock is persistent
Update Time : Thu Jul 15 14:14:55 2010
State : clean, resyncing
Active Devices : 2
Working Devices : 2
Failed Devices : 0
Spare Devices : 0
Rebuild Status : 0% complete
UUID : 74c57cbe:50bb78cd:d3bb65c6:eea9f0ce
Events : 0.1
Number Major Minor RaidDevice State
0 8 2 0 active sync /dev/sda2
1 8 18 1 active sync /dev/sdb2
Если массив останавливается и запускается без ре-синхронизации, то все ОК
Фиксируем нашу конфигурацию
Код:
# hd_verify –w
Перезагружаемся. Наслаждаемся