Автор Тема: замена винтов raid1 на полном ходу  (Прочитано 3632 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
Попытался как то на полном ходу поменять винты raid1. Массив состоял из 2 винтов.

Было так. Надо было менять системник, на стором были ide винты включённые в разные ide разъёмы в массиве raid1, так же были новые sata винты.
На новом системнике ide разъём был один и два sata. Можно было бы повесить два ide винта на один разъём, но в этом случае сводится на нет raid1 так как при выходе одного винта из строя, работать будет уже не возможно (может я ошибаюсь).

Поэтому поступил следующим образом. На новом системнике подключил один винт в ide разъём, в sata подключил sata-шные винты. Загрузился с ide, на одном sata винте разбил разделы и подкинул его в массив к ide винту. Поле того как файлы перекачались на sata винт, первый ide удалил из массива и попытался разбить второй sata винт и подкинуть в массив к первому sata винту и сделать это у меня не получилось, так как после команды fdisk всё зависло, так же зависало после команды blkid. Система вроде бы работала, хотя начались сбои. Пришлось выключать системник отключать ide винт, загружаться с sata и потом второй разбивать и подкидывать в массив к первому sata винту.

Вопрос почему не получилось, без выключения после выкидывания из массива ide винта, разбить второй sata винт. Я так понял (скорее всего что я ошибаюсь) при загрузке с ide винта он оказался как бы главным и после подкидывания к нему первого sata винта, на sata винт информация только записывалась, а если надо было что то качнуть с винтов то оно качалось только с ide винта, после того как я его удалил с массива, получалось так что я как бы вообще отключил все винты и начались сбои и по сути система не работала, поэтому и не удалось разбить второй sata винт. Получается так что перед тем как удалить из массива ide винт надо было сделать главным sata винт, но как это сделать я не знаю.
 Если это так то подскажите как это сделать, если нет то почему не получилось разбить второй sata винт и всё стало сбоить и виснуть.

Оффлайн FessAectan

  • Модератор
  • Старожил
  • *****
  • Сообщений: 972
  • Рейтинг: 25
  • Пол: Мужской
  • На пути к просветлению
    • fessae@jabber.ru
    • fessae
    • Просмотр профиля
    • https://vistep.ru/
  • Откуда: vistep.ru
замена винтов raid1 на полном ходу
« Ответ #1 : 07 мая 2016, 21:21:47 »
работать будет уже не возможно (может я ошибаюсь).
емнип, ошибаешься

ох и поток мыслей =)
наверное ты не дождался синка массива, от того и проблема была
Мы переоцениваем себя завтрашнего, поэтому и страдаем прокрастинацией.

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #2 : 07 мая 2016, 23:17:27 »
> наверное ты не дождался синка массива, от того и проблема была

вот именно что дождался


Updated: 07 May 2016, 23:25:29

если два ide-шника на одном шлейфе и на пример у одного по железу коротнёт по данным, второй ведь уже работать не будет.

Ядро считывает с рейдовских винтов в произвольном порядке, или только с одного какого то и если один пошабашил, то ядро без проблем начинает читать с любого рабочего?


Updated: 07 May 2016, 23:26:13

Или ядру надо указать что сейчас рабочий вот этот и читать надо только с него?
« Последнее редактирование: 07 мая 2016, 23:26:13 от v4567 »

Онлайн Вьшекн

  • Старожил
  • ****
  • Сообщений: 758
  • Рейтинг: 13
  • Пол: Мужской
  • Подпись под аватаром
    • Просмотр профиля
  • Откуда: замкадбург
замена винтов raid1 на полном ходу
« Ответ #3 : 07 мая 2016, 23:34:00 »
у одного по железу коротнёт по данным
ни разу не встречал такого.

первый ide удалил из массива и попытался разбить второй sata винт
по идее ничего не надо разбивать, контроллер должен сам все сделать

 
перед тем как удалить из массива ide винт надо было сделать главным sata винт
как по мне, винт надо было удалить физически, тогда бы контроллер определил его отсутствие и "основным", как вы выразились, принял бы саташник.


ну и собственно вопрос - что за контроллеры. судя по всему - интеловые интегрированые в чипсет, если завелись сами без проблем..

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #4 : 07 мая 2016, 23:44:56 »
> по идее ничего не надо разбивать, контроллер должен сам все сделать

надо - в системе 7 разделов на винте.

как по мне, винт надо было удалить физически, тогда бы контроллер определил его отсутствие и "основным", как вы выразились, принял бы саташник.ну и собственно вопрос - что за контроллеры. судя по всему - интеловые интегрированые в чипсет, если завелись сами без проблем..
                     
                  
                  
                     
                     
                     
                        

контролле не скажу сейчас какой, рейд программный, завёлся не сам, вот что набирал:

echo - - - > /sys/class/scsi_host/host$1/scan

$1 - номер канала


Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
замена винтов raid1 на полном ходу
« Ответ #5 : 08 мая 2016, 00:06:36 »
если два ide-шника на одном шлейфе и на пример у одного по железу коротнёт по данным, второй ведь уже работать не будет.
будет
Ядро считывает с рейдовских винтов в произвольном порядке,
в зеркале с одного.
 
или только с одного какого то и если один пошабашил, то ядро без проблем начинает читать с любого рабочего?
как только ядро получит определенное количество ошибок от драйвера - диск отстрелится из рейда.

без каких-либо технических подробностей дальнейший разговор не имеет практического смысла.
Not as ultimate as 42, but pretty close...

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #6 : 08 мая 2016, 17:27:19 »
если два ide-шника на одном шлейфе и на пример у одного по железу коротнёт по данным, второй ведь уже работать не будет.будет

я не спорю, но не понятно как он будет работать если шина данных одна и она закорочена, на ней хоть что не подай будут нули


Ядро считывает с рейдовских винтов в произвольном порядке,в зеркале с одного.

вот этот как раз и хотел узнать


без каких-либо технических подробностей дальнейший разговор не имеет практического смысла.

технические подробности собственно следующие:

подключен один ide на котором 7 разделов, на одном из разделов корень - linux, остальные бекап, данные, boot и т.д. Он определился как sda, а так же подключены два саташных определились как sdb  и sdc они полностью чистые.

sdb разбиваю по разделам в точности как sda, командой:

fdisk /dev/sdb

потом подкидываю в рейд командами:

mdadm /dev/md0 -a /dev/sdb1
mdadm /dev/md1 -a /dev/sdb2
и т.д.

потом запускаю команду :

watch cat /proc/mdstat

и жду пока на все разделы диска sdb зальётся информация - состояние станет [UU]

потом делаю сбойным sda и выкидываю его из массива:

mdadm /dev/md0 -f /dev/sda1
mdadm /dev/md0 -r /dev/sda1
mdadm /dev/md1 -f /dev/sda2
mdadm /dev/md1 -r /dev/sda2
и т.д.

потом разбиваю sdc

fdisk /dev/sdc

и вот здесь когда хочу выйти с сохранением разбитых разделов из команды fdisk, набирая "w" из fdisk выхожу но пишет что ошибки, какие сейчас не скажу, но по моему что то связанное с ioctl() написало, функция ioctl() что то не может сделать или получить какие то параметры.

Потом набираю fdisk -l посмотреть разбился sdc на разделы или нет и всё зависает, fdisk не возвращает командную строку, набираю blkid картина та же. Начинаются какие то проблемы с данными, с системой.
 Далее выключаю компьютер отключаю ide винт, загружаюсь с sdb, он стал теперь sda, а sdc стал sdb, вижу что sda один в рейде, делаю с sdb те же манипуляции что делал ранее с sdb который сейчас стал sda и всё нормально. Рейд собирается и всё в порядке.

Вопрос заключался в том, что можно ли подкинуть sdc в рейд после удаления от туда ide-шного sda без выключения компьютера.

Если да то как это сделать.

Если нужны ещё какие нибудь технические подробности скажите какие я напишу.


Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
замена винтов raid1 на полном ходу
« Ответ #7 : 08 мая 2016, 18:20:38 »
я не спорю, но не понятно как он будет работать если шина данных одна и она закорочена, на ней хоть что не подай будут нули
It is a common myth that the controller on the master drive assumes control over the slave drive, or that the master drive may claim priority of communication over the other device on the same ATA interface. In fact, the drivers in the host operating system perform the necessary arbitration and serialization, and each drive's onboard controller operates independently of the other.
https://en.wikipedia.org/wiki/Parallel_ATA#Master_and_slave_clarification
Он определился как sda, а так же подключены два саташных определились как sdb  и sdc они полностью чистые.
я конечно IDE не видел уже сто лет, но помнится они всегда были hda/hdb/hdc.
Потом набираю fdisk -l посмотреть разбился sdc на разделы или нет и всё зависает, fdisk не возвращает командную строку, набираю blkid картина та же. Начинаются какие то проблемы с данными, с системой.
все интересные ошибки должны быть в dmesg или на нулевой консоли. плюс еще можно посмотреть какие процессы залипли в статусе D. Или еще можно поработать без добавления sdc, на одном лишь sdb. Если работать будет ок - значит проблема где-то в стороне sdc, в любом случае должна быть подробная ругань в dmesg.
PS если dmesg будет зависать, а нулевая консоль недоступна - полезно будет настроить netconsole и слать все логи ядра по сети куда-то в другое место.
Not as ultimate as 42, but pretty close...

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #8 : 08 мая 2016, 18:29:37 »
Буду на работе подробно изучу логи.

Но вообще замена без выключения компьютера ту что пытался осуществить я должна была пройти нормально? Так как я хотел поменять винты, загрузиться с ide-шного винта, а потом ему в рейд подкинут в начале один саташный, потом выкинуть из рейда ide-шный и потом к саташному подкинуть второй саташный долна была пройти без проблем или так нельзя делать?



Updated: 08 May 2016, 18:30:56

Или так можно сделать но надо какой то командой сделать главным вместо ide-шного подкинуты саташный, а потом выкидывать из рейда ide-шный и подкидывать уже второй саташный?


Updated: 08 May 2016, 18:32:20

Интересует вопрос можно так поменять или нет. Потому что делал так несколько раз на тестовом компьютере и было то же самое, поменять на полном ходу так и не удалось.

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
замена винтов raid1 на полном ходу
« Ответ #9 : 08 мая 2016, 18:36:56 »
Но вообще замена без выключения компьютера ту что пытался осуществить я должна была пройти нормально?
нет. IDE нельзя вытаскивать/добавлять на ходу вообще, поведение контроллера будет совсем непредсказуемым. да и старые контроллеры sata тоже не умеют hot-swap.
Not as ultimate as 42, but pretty close...

Оффлайн ds0m

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1299
  • Рейтинг: 22
  • Пол: Мужской
    • ds0m.spb@gmail.com
    • Просмотр профиля
  • Откуда: DC
замена винтов raid1 на полном ходу
« Ответ #10 : 08 мая 2016, 18:39:30 »
да и старые контроллеры sata тоже не умеют hot-swap.
Да и для большинства новых, нужно принудительно включать на конкретных портах возможность горячей замены. По умолчанию она отключена.
<root> помимо принципа "работает - не трогай", есть ещё один важный принцип - "бритва Оккама" - "не приумножай сущность сверх необходимости"
А спонсор этого поста - прививка от бешенства. Прививка от бешенства - не твоя, вот ты и бесишься.

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #11 : 08 мая 2016, 18:41:16 »
нет. IDE нельзя вытаскивать/добавлять на ходу вообще, поведение контроллера будет совсем непредсказуемым. да и старые контроллеры sata тоже не умеют hot-swap.

Это понятно.

Имел ввиду манипуляции с рейдом. Загрузиться с ide - 2 саташных чистые в рейде только один ide, подкинуть в рейд один саташный, потом выкинуть из рейда ide и к саташному подкинуть второй саташный. Так можно делать?




Updated: 08 May 2016, 18:42:47

Да и для большинства новых, нужно принудительно включать на конкретных портах возможность горячей замены. По умолчанию она отключена.

Что это имеется ввиду и как это сделать?

Оффлайн VanDyke

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 1800
  • Рейтинг: 73
  • Пол: Мужской
  • Network Warrior
    • Просмотр профиля
  • Откуда: Destination network unreachable
замена винтов raid1 на полном ходу
« Ответ #12 : 08 мая 2016, 18:49:16 »
. Загрузиться с ide - 2 саташных чистые в рейде только один ide, подкинуть в рейд один саташный, потом выкинуть из рейда ide и к саташному подкинуть второй саташный. Так можно делать?
логические манипуляции можно делать практически любые, для диска это всего лишь обычные данные. почему ядро при этом ведет себя нестабильно - надо смотреть в dmesg
Not as ultimate as 42, but pretty close...

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #13 : 08 мая 2016, 18:50:18 »
Я на горячем подкидываю сата следующим образом, в начале включаю разъём интерфейса, потом питания. Потом ввожу команду:

echo - - - > /sys/class/scsi_host/host"номер канала"/scan

и всё если номер канала ввёл правильно, то вин становится виден в системе.
Как узнать номер канала не знаю. Номер канала считаю так: Если винт подключён в разъём sata0, то канал - 0, если в sata1 - 1, и т.д.
Если помимо sata есть ide - один разъём, то каналы 0 и 1 будут ide-шные, а sata0 - 2, sata1 -3

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

echo 1 > /sys/block/"диск"/device/delete

диск это sda, sdb и т.д.

потом отключаю разъём питания и разъём интерфейса.

Эти команды имелись ввиду?



Updated: 08 May 2016, 18:51:25

логические манипуляции можно делать практически любые, для диска это всего лишь обычные данные. почему ядро при этом ведет себя нестабильно - надо смотреть в dmesg

понятно, когда буду на работе подробно посмотрю логи.




Updated: 08 May 2016, 18:52:04

Тогда здесь выложу всё что всё что ядро напишет по этому поводу.



Updated: 08 May 2016, 18:59:36

Спрошу ещё вот какой вопрос.

Если у меня в рейде есть два саташных винта sda и sdb, они в первом рейде и всё нормально работает. Я перезагружаю компьютер.
В конфиге груба записано что root=/dev/md0 , md0 это загрузочный корневой раздел.В md0 два раздела sda1 и sdb1. Получается записан рейдовый раздел, с какого конкретно винта sda или sdb груб будет грузить ядро? В том же конфиге груба ядру будет передан параметр root=/dev/md0, опять же с какого винта sda или sdb ядро будет загружать файлы, то есть с каким оно будет работать, а какой будет просто зеркало?
« Последнее редактирование: 08 мая 2016, 18:59:36 от v4567 »

Оффлайн v4567

  • Постоялец
  • ***
  • Сообщений: 121
  • Рейтинг: 0
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Харьков
замена винтов raid1 на полном ходу
« Ответ #14 : 02 июля 2016, 09:42:09 »
Пробовал менять винты не на полном ходу, выключал компьютер, переключал винты, потом включал компьютер, разбивал винт, подкидывал его в рейд, и всё равно после система рассыпалась, получалось так что портились файлы, файл базы - бинарный, разные скрипты, бывало даже ядро. Почему так происходило так и не выяснил. Пробовал на другом железе и не на одном - всё нормально, нормально даже было при замене на полном ходу. Этот компьютер просто сейчас не использую и всё, может что то с материнкой, может подгорели мосты на материнке....