Форматирование WD10EARS для FreeBSD


Tagged ,

Купил себе для хранения данных 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

Share:

No comments

RSS / trackback

Respond