Серверная (www.it-simple.ru)

Ускорение работы жёсткого диска: режим AHCI для SATA


Скорость работы компьютера равна скорости работы его самой медленной детали. По факту, самая медленная деталь в компьютере — это винчестер.

Практически все современные жёсткие диски имеют интерфейс SATA и поддерживают протокол SATA II. Практически все современные материнские платы умеют работать с этим протоколом и поддерживают несколько режимов работы контроллера, а именно:

Проблема в том, что по умолчанию всегда включен режим работы «IDE», по соображениям совместимости. И всё, что нам нужно сделать — просто переключить его на «AHCI».

Инструкция для Linux

  1. Включаем режим AHCI

Инструкция для Windows XP

  1. Запускаем Windows XP
  2. Скачиваем с инета нужный SATA-драйвер для контроллера
  3. В диспетчере устройств принудительно меняем существующий IDE-драйвер на скачанный (здесь подробная инструкция (http://acerfans.ru/faq/163-ahci-na-win-xp.html))
  4. Перезагружаемся и заходим в BIOS
  5. Включаем режим AHCI
  6. Перезагружаемся в Windows XP (теперь загрузка станет возможной). Установка «новых» устройств пройдёт автоматически
  7. Перезагружаемся (винда сама об этом попросит)

Дополнительно

Горячая замена

Диск, подключённый к SATA-контроллеру, работающему в режиме AHCI, можно заменить на лету. То есть, не выключая компьютер. В режиме IDE так не получится, новый диск будет невидимым до перезагрузки компьютера.

Очень актуально для дисковых док-станций, подключенных через eSATA и для программных RAID-массивов.


В BIOSе отсутствует функция переключения режимов

Обычно такое бывает с компьютерами «Vista Ready».

Режим AHCI включен по умолчанию, настройка из биоса убрана. Сделано для того, чтобы обычный пользователь не смог установить ХР (в её инсталляторе нет нужных драйверов, а в стандартный IDE мы переключиться не можем).

Результат сговора микрософта с производителями.

В этом случае можно попробовать найти стороннюю прошивку BIOSа, где опция режима будет доступна.
Использовать — только на свой страх и риск. Процедура перепрошивки BIOSа сама по себе опасна. Прошивка сторонним биосом — опасна вдвойне.


NCQ (Native Command Queuing), встроенная (аппаратная) очерёдность команд

Цитата из википедии:

Устройства с поддержкой NCQ способны принимать несколько запросов одновременно и реорганизовывать порядок их выполнения для достижения максимальной эффективности (производительности) с учётом внутренней архитектуры устройства (минимизируя количество перемещений головок и ожидание нужного сектора на треке).

Наглядная иллюстрация:

http://en.wikipedia.org/wiki/File:NCQ.svg (http://en.wikipedia.org/wiki/File:NCQ.svg)

Даёт прирост производительности в 15-30%.

Поддерживается ли NCQ в RAID?

NCQ работает на аппаратном уровне железяки, винчестера. То есть, на более низком уровне, чем любой RAID.

Поэтому "поддерживается" — неправильное слово. Если у винчестера есть NCQ, то она работает вне зависимости от того, в каких условиях находится винчестер.


Linux – перевод SATA контролера c IDE режима в AHCI

Итак, возникла потребность перевести SATA контролер с режима IDE в AHCI. Сменил режим в BIOS, перезагрузил сервер и получил kernel panic. Оказалось что не все так просто.

Итак, что нужно сделать чтобы система загрузилась:

1) возвращаем режим IDE в BIOS, загружаем систему.

2) Открываем на редактирование /etc/modprobe.conf и ищем строчку:

alias scsi_hostadapter ata_piix

Заменяем ее строчкой:

alias scsi_hostadapter ahci

3) пересобираем образ initrd с поддержкой AHCI:

mkinitrd –preload=ahci /boot/initrd-`uname -r`-ahci.img `uname -r`

4) правим grub.conf , добавляем новый пункт меню с новым initrd

5) перезагружаем сервер, входим в BIOS и выставляем режим AHCI, сохраняем настройки и загружаем систему. После загрузки системы просматриваем вывод dmesg и видим что AHCI включился.

Linux – перевод SATA контролера c IDE режима в AHCI (http://kaba.org.ua/articles/linux-perevod-sata-kontrolera-c-ide-rezhima-v-ahci/)