патчим #anime под FreeBSD

Mar 22, 2010 07:45

Итак, финальная часть. Предыдущие: http://amarao-san.livejournal.com/tag/animelife

Осталось уточнить одно: как именно, на физическом уровне, происходит процесс работы с HDDLib?

Ну, всё довольно просто. SATA, особенно, SATA300 умеет hotplug, т.е. диски (при должной готовности файловой системы) можно свободно дёргать на ходу. Единственным "но" является правильность подключения питания - питание подключается раньше data и отключается после отключения data (это вполне понятно, т.к. при подаче питания идут переходные процессы, и совсем не хочется, чтобы побочные эффекты стукнули по шнурку). Теоретически, шнур питания sata достаточно готов к хотплагу, но на практике, лучше не рисковать, потому что один из тысячи раз 12 вольт попадёт на устройство раньше земли...

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

После этого диск монтируется (я обычно это делаю в /media/HDD), с ним выполняется то, что нужно (копирование/удаление), приходит время удаления...

Что нужно сделать в минимальном виде, чтобы отключить диск? Во-первых, отмонтировать его. Файловые системы очень не любят, когда их рубят на ходу.

Во-вторых, нужно объяснить ядру, что диск будут отключать. В принципе, новые ядра очень хорошо умеют понимать "отваливающееся железо", так что никакого криминала не будет, если после отмонтирования просто вытащить винт. (note: я не уверен, делается ли sync при отмонтировании).

Но ядро сдержанно матюгнётся в dmesg, так что есть более красивый вариант отключения. Нужно сказать ядру "выключить такое-то устройство". Делается это записью "1" в /sys/block/sdX/device/delete.

Так что пишется простенький, но приятный скрипт в /usr/local/sbin/:

#!/bin/sh
echo 1 >/sys/block/$1/device/delete

sudo soff sdf, и диск можно отключать.

У меня есть штатная соска SATA и SATA-TO-USB бокс. Безусловно, первое работает лучше (скорости до 70Мб/с, у USB не выше 30). Но оно требует открытого корпуса, и некоторой сосредоточенности духа (т.к. можно легко воткнуть питание SATA к верх ногами, что на ходу приведёт к КЗ в БП и вероятному выгоранию электроники, разъём SATA хоть и хотплаг, но нифига не дуракозащищённый - воткнуть питание углом к верх ногами можно элементарно), так что USB используется для мелких задач, а так же для ситуаций, когда нужно больше одного винта одновременно.

В принципе, в корпусе есть место для большего количества винтов, но лучше не перенапрягать БП, потому что при старте дисков идёт ОЧЕНЬ большое превышение потребления тока, а все бюджетные (десктопные) системы не умеют делать отложенного старта винтов... (у меня есть пара мыслей, как это попытаться сделать для несистемных дисков, но это надо садиться экспериментировать с живыми винтами, что есть не очень хорошо).

Винчестер на БП - обычное место для гостевого диска (благодаря отсутствию соседов и дырки сзади, он получает довольно ощутимый ток воздуха не смотря на отсутствие вентиляторов. В моей коллекции дисков, только первая 250ка от сигейта с вертикальной записью умудряется тут перегреваться под 45-50 градусов, остальные лежат холодными.


animelife, hardware, anime, linux

Previous post Next post
Up