Мы — долго запрягаем, быстро ездим, и сильно тормозим.

FreeBSD
  настройка
  подсчёт трафика
  программы
  почтовые системы
  Шелезяки
  UPS APC-1500
  NetMos NM9845
  cisco & syslog
  LAN card`s test
  HDD & UDMA100
  S.M.A.R.T.
  D-Link DE-200TP
  Marvell 88E8053
  D-Link DGE530T
  КПК + FreeBSD
  D-Link DWL-G520
  SkyLink-CDMA
  Atheros AR5007EG
  BlueTooth mouse
  Asus Eee PC
  atacontrol
  SkyStar-2+SlonAx
  TT budget S-1401
  SiS*Mirage*1 на D201GLY2
  NetXtreme BCM5722
  snd_hda
  Peoplenet + C-motech (3G)
  freebsd + huawei 162 gsm modem
  tw_cli
  pc_speaker
  Canon/gphotofs
  Охранная система на FreeBSD+LPT
  Даешь 220 в LPT
  Мелочи
  Файловая система
  WWW
  Security
  system
  Games Servers
  X11
  Programming
Очумелые Ручки
OpenBSD
Cisco


www.lissyara.su —> статьи —> FreeBSD —> Шелезяки —> HDD & UDMA100

Устранение ошибок при работе HDD в высокоскоростных режимах

Автор: lissyara.


    Возникла необходимость поставить на почтовый сервак "HDD Rack" - коробочку формата 5`25 для харда - чтобы можно было его вынуть, если приедут "маски-шоу" :) - ибо народ по почте привык кидать ценные документы, а в офисе imap - вся почта на сервере. Раки уже были, как раз был очередной налёт на офис - погасил сервак, поставил саму коробку. Менты уехали, поставил хард в салазки, воткнул в сервак (вообще на нём три харда - под систему, под файлопомойку и под раздел /var - его и примостил в салазки) хард. Разумеется всё завелось, но утром, в отчёте сервака были интересные строки:
mx.lissyara.su kernel log messages:
+++ /tmp/security.l44DM1B9 Sat May 13 03:02:47 2006
+ad2: WARNING - READ_DMA UDMA ICRC error (retrying request) LBA=53074623
+ad2: WARNING - READ_DMA UDMA ICRC error (retrying request) LBA=53074623
+ad2: FAILURE - READ_DMA status=51<READY,DSC,ERROR> error=84<ICRC,ABORTED> LBA=53074623
+g_vfs_done():ad2s1d[READ(offset=27174174720, length=49152)]error = 5

Первая мысль была - пока таскали хард с места на место - стукнули где-то... Ну и посыпался. Идеи с перегревом отпадали сразу - в серверной холодно, плюс у коробочки свой вентилятор для харда (хотя коробка пластмассовая - это конечно минус, на корпус тепло не уходит. При случае надо будет купить ляминевую и заменить - ибо деталь в ней отвественная). Посмотрел журнал событий - раньше такого не было, началось именно после установки рака... Решил протестить хард:
/usr/home/lissyara/>dd if=/dev/ad2 of=/dev/null bs=1m
dd: /dev/ad2: Input/output error
313+0 records in
313+0 records out
328204288 bytes transferred in 5.592864 secs (58682687 bytes/sec)
/usr/home/lissyara/>

Мдя. Но тут вспомнил устройство самой коробки - сопливенький шлейф, хреновые разъёмы... И мелькнула шальная мысль - может он вовсе и не UDMA133 как обещается в инструкции? Решил посмотреть инфу по харду:
/usr/home/lissyara/>atacontrol cap ad2

Protocol              ATA/ATAPI revision 6
device model          WDC WD800JB-00JJA0
serial number         WD-WCAM93738482
firmware revision     05.01C05
cylinders             16383
heads                 16
sectors/track         63
lba supported         156301488 sectors
lba48 not supported
dma supported
overlap not supported

Feature                      Support  Enable    Value           Vendor
write cache                    yes      yes
read ahead                     yes      yes
Tagged Command Queuing (TCQ)   no       no      0/0x00
SMART                          yes      no
microcode download             yes      yes
security                       yes      no
power management               yes      yes
advanced power management      no       no      0/0x00
automatic acoustic management  yes      no      254/0xFE        128/0x80
/usr/home/lissyara/>

Нихрена не нашёл списка поддерживаемых режимов. Поставил режим PIO:
/usr/home/lissyara/>atacontrol mode ad2 pio4
current mode = PIO4
/usr/home/lissyara/>

И начал бэкапить БД что там хранились. Через час всё было готово, никаких ошибок, но убивала скорость - около 6 мегабайт в секунду, и загрузка проца 100% - в основном прерываниями... Тогда решил оттестить все режимы UDMA - посмотреть, может на каком и заработает нормально:
/usr/home/lissyara/>atacontrol mode ad2 udma33
current mode = UDMA33
/usr/home/lissyara/>
/usr/home/lissyara/>dd if=/dev/ad2 of=/dev/null bs=1m
76319+1 records in
76319+1 records out
80026361856 bytes transferred in 2831.827350 secs (28259619 bytes/sec)
/usr/home/lissyara/>atacontrol mode ad2 udma66
current mode = UDMA66
/usr/home/lissyara/>
/usr/home/lissyara/>dd if=/dev/ad2 of=/dev/null bs=1m
76319+1 records in
76319+1 records out
80026361856 bytes transferred in 1602.992097 secs (49923117 bytes/sec)
/usr/home/lissyara/>atacontrol mode ad2 udma100
current mode = UDMA100
/usr/home/lissyara/>dd if=/dev/ad2 of=/dev/null bs=1m
dd: /dev/ad2: Input/output error
313+0 records in
313+0 records out
328204288 bytes transferred in 5.585376 secs (58761359 bytes/sec)
/usr/home/lissyara/>

Слетало на UDMA100 - т.е. виноват скорей всего не сам хард, а говёная коробка (хотя и винт не лучший - но тут уж не моя вина - коли начальство жмётся на новый сигейт, то приходится ставить что есть, предупреждая это самое начальство, что в случае поломок с меня ничё не спрашивайте). Порывшись в стартовых скриптах системы не нашёл штатного средства установки нужных скоростей дисков при загрузке. Добавил в один из своих скриптов такие строки:
# switch UDMA100 -> UDMA66 because problem at /dev/ad2
/sbin/atacontrol mode ad2 udma66

Ну и всё.

P.S. Статья вообще-то задумывалась про atacontrol, но ввиду того, что ещё не разобрался с рэйдами, что можно создавать с его помощью, это пока откладывается. Попозже. Когда разберусь.



Ссылка на обсуждение: http://forum.lissyara.su/viewtopic.php?f=5&t=683.

размещено: 2006-05-13,
последнее обновление: 2006-05-13,
автор: lissyara

оценить статью:

Toptyg, 2006-11-28 в 19:28:26

Чувак, +5 тебе супер статья.
//Вторая статья с сайта и все в точку)))
 

sickboy, 2007-01-25 в 11:59:11

Ага, отлично написано.
Но мне она не помогла, хотя проблема схожая

Alien, 2007-02-10 в 13:05:41

Синтаксис atacontrol немного другой, во FreeBSD 5.5 как  минимум. Например:
atacontrol cap 2 ad4
atacontrol mode 2 udma100 BIOSPIO,
то есть в коммандах требуется указывать номер канала.

Мне почему то не удалось поменять скорость винтов, видимо они не поддерживают ничего кроме UDMA150, т.к. SATA.

GhostMaster, 2007-05-15 в 23:43:25

Сталкивался с подобным но только в худших масштабах - стели слайсы с винта при работе в любом ДМА режиме даже на этапе загрузки. Накопал что драйвер переводится в PIO путем прописывания hw.ata.ata_dma="0" в /boot/loader.conf
Ну а дальше уже можно режим сменить любым скриптиком в процессе загрузки системы/

_Dron_, 2007-10-23 в 13:42:44

а узнать текущий режим можно при помощи
atacontrol mode ad0

Пожары, 2009-09-25 в 9:42:53

Лиссяра ! Ты как всегда лучший ! СПАСИБО !!!

Серега, 2011-02-23 в 10:25:34

Чувак, ты крут, как ты мне помог этой статьей =))) Давно тебя читаю кстати, ваще спс, слов нет )))))))


Оставьте свой комментарий:
Ваше имя:   *
e-mail:  
жирный
наклонный
подчёркнутый
ссылка
цвет
Нынешний год:   *
 


Хостинг HOST-FOOD

2014-07-27, lissyara
gmirror

Удалённое создание софтверного зеркала средствами gmirror, на диске разбитом с использованием gpart. Использование меток дисков для монтирования разделов.
2013-08-20, zentarim
Scan+Print server FreeBSD 9

Настройка сервера печати и сервера сканирования под управлением операционной системы FreebSD 9 для МФУ Canon PIXMA MP540
2011-11-20, BlackCat
Разъём на WiFi-карту

Делаем съёмной несъёмную антену на WiFi-карте путём установки ВЧ-разъёма
2011-09-14, manefesto
Настройка git+gitosis

Настройка системы контроля версия исходного кода в связке git+gitosis+ssh
2011-08-14, zentarim
Wi-FI роутер + DHCP + DNS

Настройка Wi-Fi роутера на Freebsd 8 + DNS сервер + DHCP сервер: чтобы Wi-Fi клиенты были в одной подсети с проводными, проводные и беспроводные клиенты получали адреса автоматически по DHCP, кэширующ
2011-06-15, -ZG-
Охранная система на FreeBSD+LPT

В этой статье описана попытка реализации простой охранной системы на базе FreeBSD с подключением к ней охранных устройтсв на LPT порт и видеорегистрацией.
2011-03-13, terminus
ng_nat

Описание работы ng_nat, практическое использование, достоинства и недостатки в сравнении с ipfw nat
2011-02-20, Капитан
Nagios+Digitemp

Статья описывает создание системы оповещения о превышении температуры в специальных помещениях на основе Nagios с использованием программы Digitemp.
2011-02-17, Le1
Zyxel Configuration

Скрипт для массового изменения конфига свичей Zyxel. Берет из файла iplist список ip-шек, заходит последовательно на каждый и выполняет комманды из файла commands, записывая происходящее в лог файл.
2011-02-16, fox
hast carp zfs ucarp cluster

HAST (Highly Available Storage), CARP, UCARP, ZFS, Cluster настройка и одаптация плюс личные размышления…
2011-02-04, BlackCat
Восстановление ZFS

История о том, как был восстановлен развалившийся RAIDZ ZFS-пул (перешедший в FAULTED) с помощью скотча и подручных средств. Или о том, какие приключения ожидают тех, кто не делает резервных копий.
2011-02-03, Капитан
1-Wire

Статья описывает самостоятельное изготовление контроллера DS9097 для съёма показаний с датчиков температуры DS1820 с помощью программы Digitemp.
2011-01-28, Капитан
Температура в серверной

Статья описывает построение системы наблюдения за температурой в помещении серверной с использованием программы Digitemp и выводом графиков в MRTG
подписка

    вверх      
Статистика сайта
Сейчас на сайте находится: 9 чел.
За последние 30 мин было: 51 человек
За сегодня было
3222 показов,
672 уникальных IP
 

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

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0478 секунд
Из них PHP: 28%; SQL: 72%; Число SQL-запросов: 77 шт.
Исходный размер: 98275; Сжатая: 19452