Ситуация. Уже работающий сервер - и на нем(как сейчас выяснилось, до сего момента не до того было), рейда нет, и стоят два диска РАЗНЫХ размеров. Стоит ли собирать software raid из двух разных дисков? Не будет ли каких-то косяков в процессе(ведь я не смогу разметить sdb как sda).
И вот это - WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
что за хрень?root@localhost:/# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda3 912G 133G 733G 16% /
tmpfs 3.9G 0 3.9G 0% /lib/init/rw
udev 3.9G 148K 3.9G 1% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
/dev/sda2 89M 15M 69M 18% /boot
/dev/sda6 1.9G 35M 1.8G 2% /tmproot@localhost:/# fdisk -l
Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00005876Device Boot Start End Blocks Id System
/dev/sda1 1 1 8001 83 Linux
/dev/sda2 * 2 13 96390 83 Linux
/dev/sda3 14 120855 970663365 83 Linux
/dev/sda4 120856 121601 5992245 5 Extended
/dev/sda5 120856 121353 4000153+ 82 Linux swap / Solaris
/dev/sda6 121354 121601 1992028+ 83 LinuxWARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.
Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000Device Boot Start End Blocks Id System
/dev/sdb1 1 60802 488386583+ ee GPT
второй диск к тому же меньше, разделы в рейд 1 можно, полностью ес-но не сделаешь, но только те разделы что уместятся на втором диске.
> второй диск к тому же меньше, разделы в рейд 1 можно, полностью
> ес-но не сделаешь, но только те разделы что уместятся на втором
> диске.Да все-все-все содержимое весит всего 100 гбайт.
Идея в том, что разметить sbd сейчас и его в рейд, на него все слить, потом форматнуть sda и его тоже разметить по образу sdb (оставив 500 гбайт пустым), добавить его в рейд, и синхронизацию сделать. Но вот не уверен, что все получится, никогда не делал, что бы в рейде было два разных винта.
> Но вот не уверен, что все получится, никогда не
> делал, что бы в рейде было два разных винта.у меня работают. только опять же разделы. можно 2 одинак раздела (по 1 му на винт) сделать и зазеркалить, а поверх lvm и рули как хочешь.
>> Но вот не уверен, что все получится, никогда не
>> делал, что бы в рейде было два разных винта.
> у меня работают. только опять же разделы. можно 2 одинак раздела (по
> 1 му на винт) сделать и зазеркалить, а поверх lvm и
> рули как хочешь.так если я сделаю раздел в 490 гигов на втором , а на первом просто тупо выкину полтерабайта - зафурычит?
>>> Но вот не уверен, что все получится, никогда не
>>> делал, что бы в рейде было два разных винта.
>> у меня работают. только опять же разделы. можно 2 одинак раздела (по
>> 1 му на винт) сделать и зазеркалить, а поверх lvm и
>> рули как хочешь.
> так если я сделаю раздел в 490 гигов на втором , а
> на первом просто тупо выкину полтерабайта - зафурычит?так не знаю. у меня на обоих разделы зазеркалены. грубо на каждом по разделу на 490гб и они в рейде. но по идее можно, только указать в mdadm.conf в devices /dev/sda /dev/sdb1
>>>> Но вот не уверен, что все получится, никогда не
>>>> делал, что бы в рейде было два разных винта.
>>> у меня работают. только опять же разделы. можно 2 одинак раздела (по
>>> 1 му на винт) сделать и зазеркалить, а поверх lvm и
>>> рули как хочешь.
>> так если я сделаю раздел в 490 гигов на втором , а
>> на первом просто тупо выкину полтерабайта - зафурычит?
> так не знаю. у меня на обоих разделы зазеркалены. грубо на каждом
> по разделу на 490гб и они в рейде. но по идее
> можно, только указать в mdadm.conf в devices /dev/sda /dev/sdb1не, не зафурычит, размер блочных устройств разный
> не, не зафурычит, размер блочных устройств разныйroot@localhost:/# sfdisk -d /dev/sda
# partition table of /dev/sda
unit: sectors/dev/sda1 : start= 63, size= 16002, Id=83
/dev/sda2 : start= 16065, size= 192780, Id=83, bootable
/dev/sda3 : start= 208845, size=1941326730, Id=83
/dev/sda4 : start=1941535575, size= 11984490, Id= 5
/dev/sda5 : start=1941535638, size= 8000307, Id=82
/dev/sda6 : start=1949536008, size= 3984057, Id=83Почему? Вот это вот sda. Выкидываем половину блоков из sda3, и получаем готовую разметку для sdb. А потом данные копируем, и заново размечаем sda по разметке sdb при синхронизации.
Разве нет?
опредедлись что ты зеркалируешь. зеркалировать можно одно блочное устройство в другое. если диск то у него размер 1 тб, а у раздела на втором диске меньше, если разделы отдельно то получишь кучу рейдов. сам рейд диск не обрежет (нельзя от 1 тб взять только что есть на втором диске) хотя его включит, но он всегда будет сбойным после синхронизации, пробовал.
у меня была другая песня - 1тб диск из зеркала ушел в мир иной, на замену ставил на 2тб, так вот пока на диске в 2тб не создал раздел размером как первый диск получал не отсинканый рейд, как создал и его в рейд вогнал все заработало в обычном режиме
в общем на 500ке делаешь рейд с зеркалом missing, поверх него делай как надо все разделы..., а потом создашь раздел на 1тб диске таким же размером как 500ка и его уже в рейд зеркалом вместо missing
> в общем на 500ке делаешь рейд с зеркалом missing, поверх него делай
> как надо все разделы..., а потом создашь раздел на 1тб диске
> таким же размером как 500ка и его уже в рейд зеркалом
> вместо missingИменно так сейчас и делаю, разметку ручками поправил.
Софтовый RAID с GPT - пляски с бубном обеспеченны
> Софтовый RAID с GPT - пляски с бубном обеспеченныGPT я прибил.
>> Софтовый RAID с GPT - пляски с бубном обеспеченны
> GPT я прибил.я такое делал, без GPT, всё работает тип-топ.
я делал так:
разбил меньший диск
- 250МБ под md raid-1 для /boot
- остальное md raid-1 для LVM'а (как вариант / выносится из LVM'а)переносим данные, ла-ла-ла, три рубля, ...
копируем таблицу разделов:
sfdisk -d /dev/sdX | sfdisk /dev/sdYдобавляем разделы в соответствуюцие райд'ы, инсталируем бут-лоадер на втором диске
>[оверквотинг удален]
>> GPT я прибил.
> я такое делал, без GPT, всё работает тип-топ.
> я делал так:
> разбил меньший диск
> - 250МБ под md raid-1 для /boot
> - остальное md raid-1 для LVM'а (как вариант / выносится из LVM'а)
> переносим данные, ла-ла-ла, три рубля, ...
> копируем таблицу разделов:
> sfdisk -d /dev/sdX | sfdisk /dev/sdY
> добавляем разделы в соответствуюцие райд'ы, инсталируем бут-лоадер на втором дискеУгу. Только вот сейчас возник косяк - sda есть, рейд собрали, данные скинули. ребут.
И дальше какая-то фигня.
mount
/dev/md2 on / type ext4 (rw,errors=remount-ro)
то есть корневой каталог смонтирован на рейд
монтирую каталоги md2-test и sda3-test, заливаю файл в /home/
И вижу файл в sda3-test/home/ а в md2-test/home его не вижу
То есть после рестарта система не загрузилась с рейда, а фейлнулась на загрузке с рейда и загрузилась с sda. Что в общем-то хорошо, только вопрос - а с хера тогда mount уверяет, что все смонтировано на рейд?
Только вот сейчас возник косяк - sda есть, рейд собрали, данные скинули. ребут.
И дальше какая-то фигня.
mount
/dev/md2 on / type ext4 (rw,errors=remount-ro)
то есть корневой каталог смонтирован на рейд
монтирую каталоги md2-test и sda3-test, заливаю файл в /home/
И вижу файл в sda3-test/home/ а в md2-test/home его не вижу
То есть после рестарта система не загрузилась с рейда, а фейлнулась на загрузке с рейда и загрузилась с sda. Что в общем-то хорошо, только вопрос - а с хера тогда mount уверяет, что все смонтировано на рейд?
> монтирую каталоги md2-test и sda3-test, заливаю файл в /home/
> И вижу файл в sda3-test/home/ а в md2-test/home его не вижуя так понимаю, что вы монтируете /dev/sda3 в /sda3-test и /dev/md2 в /md2-test , верно?
Тогда вопрос - с хера ли вы так делаете?
cat /proc/mdstat
[UU] ?
значит всё хорошо.
> То есть после рестарта система не загрузилась с рейда, а фейлнулась на
> загрузке с рейда и загрузилась с sda.Фантазии вам не занимать.
>> монтирую каталоги md2-test и sda3-test, заливаю файл в /home/
>> И вижу файл в sda3-test/home/ а в md2-test/home его не вижу
> я так понимаю, что вы монтируете /dev/sda3 в /sda3-test и /dev/md2 в
> /md2-test , верно?
> Тогда вопрос - с хера ли вы так делаете?А с хера бы мне так не сделать? У меня в рейде есть винты, и sda пока не в рейде. Выясняю состояние - монтирую в нужные точки.
> cat /proc/mdstat
> [UU] ?
> значит всё хорошо.Нет, потому что не все винты добавлены в рейд.
>> То есть после рестарта система не загрузилась с рейда, а фейлнулась на
>> загрузке с рейда и загрузилась с sda.
> Фантазии вам не занимать.Есть рейд, а есть sda. sda не добавлен в рейд, пока система не загрузится с рейда успешно. После успешной загрузки с рейда sda будет тоже добавлен в рейд.
Что не так?
> Что не так?
>монтирую каталоги md2-test и sda3-test, заливаю файл в /home/
>И вижу файл в sda3-test/home/ а в md2-test/home его не вижуsda не в рейде, он монтируется, на него заливается файл, а потом файл вы ищете в md2-test/home
с какого хера вы ожидаете, что он там появится, поясните логику.
>> Что не так?
>>монтирую каталоги md2-test и sda3-test, заливаю файл в /home/
>>И вижу файл в sda3-test/home/ а в md2-test/home его не вижу
> sda не в рейде, он монтируется, на него заливается файл, а потом
> файл вы ищете в md2-test/home
> с какого хера вы ожидаете, что он там появится, поясните логику.Так я и не ожидаю.
Вот конфликт.
mount
/dev/md2 on / type ext4 (rw,errors=remount-ro)
То есть корневой каталог - на рейд. Я заливаю файл в корневой каталог, ожидая увидеть его в md2-test/ ( который смонтирован на рейд, т.е. синоним / ), а вижу его в sda3-test - который смонтирован на sda.
И получается противоречие.
Мне кажется, что вы не осознаете, что вы делаете, и как оно работает.начнем с базовых понятий:
команды dmesg, grep, cat /proc/mounts, cat /proc/mdstat, ls /dev/disk/by-uuid
Пример:
root@srv02:~# dmesg |grep root
[ 0.000000] Command line: placeholder root=UUID=be75edf1-004c-42cb-86ed-66d16d4d13c4 ro quiet
[ 0.000000] Kernel command line: placeholder root=UUID=be75edf1-004c-42cb-86ed-66d16d4d13c4 ro quietпараметром root= может быть напрямую /dev/md0 (к примеру), а может быть uuid, что может быть одним и тем-же, а может быть нет:
root@srv02:~# ls -l /dev/disk/by-uuid/
total 0
...
lrwxrwxrwx 1 root root 9 May 17 14:47 be75edf1-004c-42cb-86ed-66d16d4d13c4 -> ../../md1
...
root@srv02:~#
вы вообще тут терку какую-то трете, а выводов никаких команд я так и не увидел.
Если вы считаете, что сами в состоянии анализировать ситуацию, типа так:>То есть после рестарта система не загрузилась с рейда, а фейлнулась на загрузке с рейда и >загрузилась с sda.
и имеете достаточно оснований, чтобы сделать такой вывод - то вы по праву пишете здесь под ником Root.
А пока я не понимаю, чего вы добиваетесь, сидя на этом форуме - развития телепатических качеств и навыков других участников форума? Ну ладно, попробуем:
>Есть рейд, а есть sda. sda не добавлен в рейд, пока система не загрузится с рейда успешно.
>После успешной загрузки с рейда sda будет тоже добавлен в рейд.
>Что не так?То не так, что вы думаете, что достаточно поменять /etc/fstab, и система начнет загружаться с raid. Подсказка: это не верная мысль - загрузкой системы занимается загрузчик, и на /etc/fstab при этом ему по-барабану, он пользуется своими настройками.
> Что в общем-то хорошо, только вопрос - а с хера тогда mount уверяет, что все смонтировано на рейд?Лжив он, и обманывать любит. Смотрите
cat /proc/mounts
--------------
Если бы вы прочитали хоть одну книгу по юникс, то вы бы прочитали в ней, что нужно вести журнал своих действий. Конечно, вы бы посмеялись над этим, но если бы вы _внятно_ сказали, как вы делали перенос системы на рейд, а не так:
>Угу. Только вот сейчас возник косяк - sda есть, рейд собрали, данные скинули. ребут.
>И дальше какая-то фигня.то проблема была бы решена через пару часов.