Linux горячая замена sata

Горячая замена Sata3 в Linux

Ктонибудь этим занимался ? Вопрос возник по ходу работы с софт raid .

>Стандарт SATA не предусматривает горячую замену активного устройства

Внимание на слово «АКТИВНОГО». То есть сначала надо устройство отмонтировать командой umount, а потом отключать. Всего лишь

По поводу порядка отключения кабелей — скорее перестраховка для облегчения запуска контроллера.

Горячая замена работает, начиная с самого первого SATA

Нормально всё, только устройство освободи чтоб его система не юзала и можешь делать что в голову взбредет.

Получается, что мы отмонтируем устройство и вперед ?

На первый взляд всё ок , есть ли какие подводные камни?

Делал по этому мануалу на работающем сервере 3 раза: http://habrahabr.ru/blogs/linux/102387/
Проблем не было

Главное не забыть диск из рейда вытащить!

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

зачем отмонтировать? если он не в массиве, значит он не исползуется

Ну уменя прикол был вывел диск из массива (1 raid) и не обнулил супер блоки, в итоге получил два Raid 1. Soft radi удаление диска из массива

получилось что диск хоть и не в массиве но использовался

Источник

SATA + горячая замена

А поддерживает ли сабж горячую замену ? А то вроде тыкал пару раз — все ОК.

Re: SATA + горячая замена

ее должен контроллер поддерживать

Re: SATA + горячая замена

а где это написано ? просто ведь сейчас продают переносные винты с extsata ?

Re: SATA + горячая замена

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

Re: SATA + горячая замена

>> А поддерживает ли сабж горячую замену ?

В стандарт SATA входит в том числе и горячее подключение. Но не факт, что абсолютно всё саташное железо стандартам соответствует. Лично я несколько раз втыкал жёсткие диски во время работы — всё ОК. А eSATA — это «версия» SATA для подключения внешних девайсов. Там AFAIK от обычного SATA есть отличия. Но хотплаг тоже ессно поддерживает.

Re: SATA + горячая замена

Re: SATA + горячая замена

>В стандарт SATA входит в том числе и горячее подключение.

Покажите, где это описано в стандарте.

Re: SATA + горячая замена

Serial ATA 2.6 Specification (released February 2007) — $25.00 USD
Serial ATA 2.5 Specification (released October 2005) — $25.00 USD
Serial ATA 2.5 and 2.6 Specification — $40.00 USD

Но это действительно так. Все SATA-диски поддерживают горячую замену (обязаны по стандарту), и большинство контроллеров, встроенных в материнские платы, тоже (не обязаны, но те, что расположены в интеловских, аэмдэшных и энвидиевских южных мостах, умеют, а распаивать дополнительный контроллер хуже, чем чипсетный большинству производителей стыдно).

Читайте также:  Цифровые медиаустройства windows 10

Re: SATA + горячая замена

Какие устройства соответствуют этим спецификациям? Просто к моменту принятия SATA2, производители так и не договорились на счёт hot swap, в итоге в версии 2.0 поддержка hot swap отсутствует. А вот на железе, к сожалению, не указывается, какой конкретно спецификации оно соответствует.

Источник

Добавление и удаление на ходу SATA/SCSI устройств

Современный Linux (2.6+) может обнаруживать новоподключенные устройства (на шинах, которые поддерживают hotplug). Их можно, так же отключать, предварительно отмонтировав файловые системы и сделав sync. Среди hotplug шин не только USB, но и SATA, SCSI и SAS (в теории, это же применимо и к PATA, но там много глупых контроллеров, которые не умеют адекватно реагировать на исчезновение устройства).

Отключать их лучше не дёргая на ходу физическое устройство, а сказав ядру полностью забыть про про него (гарантируя тем самым, что никаких операций ввода-вывода с устройством производиться не будет, даже если вспохватившийся кеш). Кроме того, иногда нужно выполнять эмуляцию процедуры plug-unplug без физического дёргания питания/шины данных (что не очень хорошо для железа). Самая типичная ситуация — это отладка скриптов udev.

Удаление устройства

(x — буква устройства, sda, sdb, etc).

Эта команда удаляет указанное устройство. Заметим, это низкоуровневая команда, которая не проверяет кеш и статус примонтированности, так что лучше сначала сказать umount & sync.

К сожалению, я не знаю метода совместить выключение шпинделя диска с его удалением с точки зрения ядра. Шпиндель можно отключить командой scsi-spin, однако, при попытке удалить устройство, оно будет раскручено заново и удалено. А у удалённого устройства уже нельзя ничего останавливать (нет устройства). Так что эта часть проблемы пока не решена.

Добавление устройства

Мы не можем «добавить» устройство, мы можем отдать контроллеру команду «перечитать» список устройств, подключенных к тому или иному порту. Если там найдётся что-то интересное, ядру дадут знать.

X — номер шины, совпадает с номером SATA порта на материнской плате. Если не знаете, можете смело делать для всех хостов по очереди, ничего, кроме небольшого лага в дисковых операциях, незаметного для софта и файловой системы, это не даст.

Обратите внимание, host’ы нумеруются с 0, а не с 1. (а в dmesg ata устройства нумеруются с 1).

Так же осуществляется и сканирование USB-SATA переходников (usb-боксов и внешних винчестеров — они просто фигурируют как ещё один scsi_host).

Если мы говорим про SCSI, то вместо «- — -» можно указать точный номер устройства/шины/LUN’а сканируемого устройства (например, «200 1 2»). SATA, в силу архитектурных особенностей (один target для одного initiator) принимает туда только «0 0 0».

Ещё об удалении… Если вы не знаете буквы устройства, но знаете его физическое место подключения, то удалять можно «прямым текстом», записью «1» в «/sys/bus/scsi/devices/targetX:0:0/X:0:0:0/delete».

Источник

SATA hotplug

Интересна поддержка сабжа в железе. Вообще же SATA поддерживает hotplug, но первые интеловские мосты (кажись ICH5) его не поддерживали и это было описано. Сейчас искал инфу про новые чипы (тот же ICH10) и ничего не нашел. Потому вопрос: как сейчас с этим дела? Проверил у себя — вроде работает на ICH10R. Где-то кто-то говорил что в ICHxR поддерживается, а в ICHxx — нет.

Читайте также:  Презентация про ос линукс

Вопрос №2: как привильно вставлять/удалять устройства? Сначала вставлять питание, потом данные? Нужно ли что-то делать в линуксе перед удалением, кроме отмонтирования разделов?

Не путайте SATA и ATA. В SATA «из коробки» hotplug. Главное, отмонтировать диск не забыть, перед тем, как его отключать.

(hot pluggable) SATA/SCSI add/remove scripts for Linux

Re: (hot pluggable) SATA/SCSI add/remove scripts for Linux

При подключении сначала подключаем шлейф с данными, потом с питанием.

При отключении сначала отключаем шлейф с питанием, потом с данными.

При подключении сначала подключаем шлейф с данными, потом с питанием.

При отключении сначала отключаем шлейф с питанием, потом с данными.

Интересно. А почему так?

Спс. Надо такое в DE встроить.

Первый скрипт нужен только для старых SATA/SCSI контроллеров, которые нормативно не поддерживают hot plug (по факту поддерживают почти все, только они не посылают hotplug event’ы по dbus/hal’у, ибо контроллеры глупые).

Ага и он может понабиться, если у вас SATA в режиме IDE/compatible в BIOS стоит.

Re: (hot pluggable) SATA/SCSI add/remove scripts for Linux

Где проверка на примонтированность того что выключается?
Нафига вешать зависимости на два интерфейса когда можно всё через /sys сделать? И практика парсить форматированный выхлоп дебильная, ибо формат вывода изменили и скрипты полетели.
С какого боку ATA стало эквивалентно HDD? Про SSD, например, не слышали?

>Первый скрипт нужен только для старых SATA/SCSI контроллеров

Первый скрипт может понадобиться если в(вы)рубаешь устройство не вынимая его.

Re: (hot pluggable) SATA/SCSI add/remove scripts for Linux

> Где проверка на примонтированность того что выключается?

Я не нашёл как связать /proc/scsi/scsi с /dev/sdX, просто лень было — скрипт для меня родимого.

> Нафига вешать зависимости на два интерфейса когда можно всё через /sys сделать?

It’s a just quick hack.

> И практика парсить форматированный выхлоп дебильная, ибо формат вывода изменили и скрипты полетели.

и в sys оно тоже может поменяться.

> С какого боку ATA стало эквивалентно HDD? Про SSD, например, не слышали?

Полегче!! SSD — это уже не HDD? или вы как-то иначе их называете? 🙂

> Первый скрипт может понадобиться если в(вы)рубаешь устройство не вынимая его.

Можешь поиздеватся над вендузятниками — на рабочей машине внаглую отключаешь винт , а потом подключаешь — и ничего. Т.е. линукс как работал так и работает — лица у народа очень озадаченые. Естественно все это касается SATA винтов и линукса

Во время отключения винта в Линуксе попробуйте открыть хоть один незакэшированный файл — после этого система встаёт раком и ничего не помогает.

Может есче запустить компиляцию ядра с винта который отключен?

вообще hotplug работает только для AHCI как бы по стандарту.

>> на рабочей машине внаглую отключаешь винт , а потом подключаешь — и ничего

Ага, если только имя в /dev/ не сменится, что весьма вероятно.

UUID всех спасёт

>Ага, если только имя в /dev/ не сменится, что весьма вероятно.

Читайте также:  Mobiletrans ��� mac os

если никаких скази устройств не пихать, то не сменится.

Весьма нормально работает:

echo 1 > /sys/block/sdh/device/delete

И довольно просто.

Переписано на sysfs

И да, вот так можно связать с именем блочного устройства.

Скрипты это не прикольно. Это ламерам можно показывать какой я крутой в консоли. А для личного удобства нужен гуй:)

Вы таки решительно не правы. Не буду флеймить насчет винды и привычек к мышковозительству, но скажу, что многие, очень многие вещи в консоли делать ЗНАЧИТЕЛЬНО быстрее и проще. Даже не обсуждаю сейчас вопрос «нах*я гуй на сервере», хотя тоже благодатная почва. Это, конечно, не значит, что гуй не нужен. Нужен. Но далеко не всегда и не везде.

Я даже больше скажу. В скриптах можно гуй сделать, представляете? Curses, или X11 — какой больше нравится (dialog, xdialog)

Даже не обсуждаю сейчас вопрос «нах*я гуй на сервере», хотя тоже благодатная почва.

+1, Нафиг не нужен. На сервере не влом и ручками в /sys записать.

Это, конечно, не значит, что гуй не нужен. Нужен. Но далеко не всегда и не везде.

Вы таки решительно не правы. Не буду флеймить насчет винды и привычек к мышковозительству, но скажу, что многие, очень многие вещи в консоли делать ЗНАЧИТЕЛЬНО быстрее и проще.

Не всегда. Два клика на каком-то device notifier’е против набора команды. В гуе тупо быстрее. Да, всего на секунды.

Я даже больше скажу. В скриптах можно гуй сделать, представляете? Curses, или X11 — какой больше нравится (dialog, xdialog)

Татышо. Я не хочу отдельную прогу, я хочу нормальную интеграфию в DE. Консольное решение и так есть, а гуя нету.

Источник

ozerman

Linux SATA hotswap

Перед опытами нужно убедиться, что не подключив девайс у нас нет для него уже файла в /dev/. Удалить можно так:
/sys/block/sdXX/device/delete

Если подрубив питание и шлейф к SATA жесткому диску мы его не наблюдаем ни в /dev/ ни в dmesg, то:
echo «- — -» > /sys/class/scsi_host/hostXXX/scan

Если ошибок не было, то тем самым у нас появится новый девайс в /dev/ (sda/sdb/и т.п.; XXX — номер шины, 0, 1, 2, и т.п., можно к примеру подглядеть номер SATA разъема на мамке)

Делаем нужные операции с жестким диском (не забываем размонтировать), затем тушим жесткий:
hdparm -Y /dev/sda

Comments

Тоже подобное изучал. 🙂

Для того, чтобы подключить sata-диск в линуксе «на горячую» нужно:

1. Подключить кабель данных к накопителю
2. Поключить кабель питания к накопителю
3. запустить в линуксе команду сканирования скази: rescan-scsi-bus -l (пакет sys-apps/rescan-scsi-bus)
4. в /sys/block появится новое устройство (ls /sys/block), скорее всего /sys/block/sdb
5. Посмотреть разделы: fdisk -l /dev/sdb
6. Можно монтировать разделы этого диска

Для того, чтобы отключить sata-диск в линуксе «на горячую» нужно:

1. Отмонтировать разделы, если они примонтированы
2. Сбросить кэши на диск: sync
3. Отключить диск командой (например для /dev/sdb): echo 1 > /sys/block/sdb/device/delete
4. Проверить, что в /sys/block исчезло устройство sdb
5. Отключить кабель питания от накопителя
6. Отключить кабель данных от накопителя

Источник

Оцените статью