Купил себе для хранения данных WD10EARS. Сей диск примечателен тем что у него размер сектора равен 4Кб, вместо исторически сложившехся 512б. За счет того что сектор стал больше, уменьшилось колличество служебной информации, а значит, освобожденное место стало доступным для использования. Возможно за счет этого в том числе это диск стоит меньше остальных терабайтников.
Но при всем этом позитиве, не обошлось без проблем.
Главная и основная проблема данного харда в том, что если его неправильно разметить, такие операционки как WinXP могут вообще на нем не завестить, либо возможны ужасные потери в скорости вводавывода и на без того не быстром харде.
На просторах интернета лежат записи как его правильно размечать для винды (Vista и выше делает это автоматически), для Linux, но под FreeBSD я как то особо ничего не нашел. конечно я понимаю, что огромной разницы между Linux и BSD нет, но всеже, я решил накатить небольшое руководство по разметке жесткого диска под FreeBSD.
Итак, цепляем хард и загружается и видим:
% dmesg| grep -i wd
ad6: 953869MB <WDC WD10EARS-00MVWB0 51.0AB51> at ata3-master UDMA100 SATA 1.5Gb/s
у меня он определился как ad6.
далее берем скрипт бенчмарк:
#!/bin/sh
#
# simple benchmark for AFT disk
# compare MBR/GPT and start sector match/unmatch
#
#### array-like const
TYPE0=mbr ; SECT0=63
TYPE1=mbr ; SECT1=64
TYPE2=gpt ; SECT2=34
TYPE3=gpt ; SECT3=40
#### const
CONST1M=1048576 # 1024 * 1024
CONST8M=8388608 # 1024 * 1024 * 8
#### var
DISK=ad6
PARTSIZE=64gb
COUNT=${CONST8M}
#### error check
if [ ! -c /dev/${DISK} ]; then
echo "error : device /dev/${DISK} not found."
exit
else
echo "#### target : ${DISK}"
fi
#### main
for i in 0 1 2 3; do
# set var
TYPE=`eval echo '$'TYPE${i}`
SECT=`eval echo '$'SECT${i}`
# process start message
echo "#### `date '+%Y-%m-%d %H:%M:%S'` : Test${i} : Disk type = ${TYPE} / Start sector ${SECT}"
# init disk
dd if=/dev/zero of=/dev/${DISK} bs=4096 count=8
# disk type
gpart create -s ${TYPE} ${DISK}
# add partition
gpart add -b ${SECT} -s ${PARTSIZE} -t freebsd ${DISK}
gpart show ${DISK}
newfs -S 4096 ${DISK}s1
# benchmark
mount /dev/${DISK}s1 /mnt
dd if=/dev/zero of=/mnt/dummy bs=4096 count=${COUNT}
# post process
sleep 4
umount /mnt
sleep 4
done
Меняем переменную DISK=ad6 на свой хард. Не перепутвйте, а то затерете свой используемый хард.
И запускаем естественно от рута.
В ходе тестирования будет создаваться слайс (раздел) размером 64Гб и тестироваться скорость записи на него. Можно будет увидеть как меняется скорость IO в зависимости от начального смещения раздела.
В моем случае(скорее всего и в вашем) наиболшую скорость показал раздел со смещением на 40 сектор.
Из этого же бенчмарка можно увидеть какие команды надо выполнить, чтобы разметить хард.
У меня это:
(1) # dd if=/dev/zero of=/dev/ad6 bs=4096 count=8
(2) # gpart create -s gpt ad6
(3) # gpart add -b 40 -s 1953525095 -t freebsd ad6
(4) # gpart show ad6
(5) # newfs -S 4096 ad6s1
Обьясню по порядку. (1) Зануляем mbr сектор. (2) создаем новую gpt схему на харде. (3) добавляем новый слайс, со смещением 40, размером 1953525095 секторов (?) ( размер карты GPT занимает первые 34 сектора, соотвественно нам надо начать с 40, поэтому 6 секторов оставляем пустыми. У меня общее колличество секторов 1953525101 — 6 = 1953525095) типа freebsd (просто для фс с данными), (4) смотрим что получлось в ходе разметки, у меня это:
# gpart show ad6
=> 34 1953525101 ad6 GPT (932G)
34 6 — free — (3.0K)
40 1953525095 1 freebsd (932G)
(5) накатываем фс с размером сектора 4Кб.
После этих не хитрых манипуляций монтируем новый раздел и используем по назначению.
Вообще данный метод хорош только в случае одного раздела, если вы планируете несколько разделов, плясок с высчитыванием правильно смещения вам не избежать. Главное правило, смещение должно быть кратным 8!
На этом можно закончить. Добавьте монтирование в fstab и радуйтесь.
При написании статьи очень помогли материалы с следующих сайтов:
Огромное спасибо за бенчмарк.
http://homebsd.homeunix.net/~shino/pukiwiki/index.php?FreeBSD%2FBigSector%20HDD
http://d.hatena.ne.jp/mteramoto/20101219/1292733916
http://www.linuxshare.ru/hardware/WD10EARS.html


No comments
RSS / trackback