Pull to refresh

Comments 28

Возможно я немного не в теме, но зачем FreeNAS ?? По мне так — это лишняя нагрузка. Если сервер один — то лучше использовать LVM раздел. Если же сервера 2 и более — то лучше использовать появившийся, в новом релизе, CEPH.
Ну это решения немного разного уровня. Просто если спорить здесь с чем-то, то уж тогда «зачем виртуализация, лучше все на одном сервере». А так как вопрос о виртуализации в моем случае не стоял, то соответственно, почему бы и не FreeNAS?
Вопрос стоял в том — зачем вообще нужен FreeNAS? Почему бы просто не создать LVM поверх RAID1 и отпиливать его кусочками для ВМ ???
Ааа Понял. Ну proxmox и так создает себе LVM (это кстати есть в статье). И как раз таки отпиливает его кусочками (т.е. в томе LVM создаются файлы виртуальных дисков для ВМ). Но FreeNAS мне нужен не для этого. И вообще смысл этого сообщения не FreeNAS как таковой, а проблема установки его конкретной (последней на момент статьи) версии на ВМ в proxmox. А так же — проброс реального диска в ВМ (тут уже не обязательно FreeNAS). И кстати если ВМ, в которую нужно пробросить диск, не поддерживает virtio, то можно указать ide, например. (т.е. это будет так: ide0: /dev/sdc)
Тогда прошу прощения, немного не понял.
PS: по поводу физических дисков внутри ВМ — лучше было купить самый просто SATA контроллер и прокинуть его полностью, используя IOMMU. Аналогично поступить и с сетевой картой. В противном случае внутри ВМ больше стабильных 70 мегабит за пределы сервера с proxmox вы не получите.
Согласен с вами, но не всегда это возможно. С сетью то все понятно, а вот с SATA не всегда просто. Согласен — это лучше, но… Опять таки 70Мб/с — вы ведь это про сеть? А диск? Кстати, вопрос: А как протестировать скорость работы диска во FreeNAS?
70 мегабит — да про сеть, причем драйвер virtio. У драйвера intel скорость поменьше но и пинг меньше (для задач допустим телефонии — очень хорошо) драйвер VMware (появился в 3.2) еще не пробовал, руки не дошли. Диск в такой конфигурации должен быть не хуже LVM, так как обращение происходит аналогично. Точных тестов у меня нет, внедрил везде CEPH. Очень хотелось бы услышать результат тестирования прямого обращения к диску и через LVM, думаю результаты должны быть в пределах погрешности, но в случае LVM это было бы более удобно, так как делается из WEB интерфейса.
Ну и если уж скорость LVM не подкачает — то я бы собрал RAID 10 (он быстрее) и сделал на LVM.
Согласен. А как протестировать из FreeNAS? (могу заняться, если сообщество подскажет). Или может быть не через FreeNAS. Могу поставить ВМ с другой ОС.
Запустил пару «тестов».
С начала о конфигурации. AMD FX-4300, 4Gb RAM
Диски:
/dev/sda: WDC WD5000AAKS-00V1A0: 35°C
/dev/sdb: ST3500320NS: 33°C
/dev/sdc: Hitachi HDS722020ALA330: 37°C (Самый горячий, хотя стоят рядом и на него 120мм дует прям лучше всего)
/dev/sdd: WDC WD25EZRS-00J99B0: 33°C

Хост:
root@proxmox:~# hdparm -t /dev/sda
/dev/sda:
 Timing buffered disk reads: 390 MB in  3.00 seconds = 129.86 MB/sec

root@proxmox:~# hdparm -t /dev/sdb
/dev/sdb:
 Timing buffered disk reads: 316 MB in  3.02 seconds = 104.80 MB/sec

root@proxmox:~# hdparm -t /dev/sdc
/dev/sdc:
 Timing buffered disk reads: 380 MB in  3.01 seconds = 126.25 MB/sec

root@proxmox:~# hdparm -t /dev/sdd
/dev/sdd:
 Timing buffered disk reads: 256 MB in  3.01 seconds =  84.98 MB/sec

FreeNAS.
vtbd0 — virtio-диск (обычный, сделанный через веб-морду, т.е. файл на LVM-томе),
vtbd1 — virtio1: /dev/sdc — т.е. проброс физического диска sdc из хоста
vtdb2 — virtio2: /dev/sdd — т.е. проброс физического диска sdd из хоста
Привожу только Transfer rates:
# diskinfo -t /dev/vtbd0
Transfer rates:
        outside:       102400 kbytes in   1.173317 sec =    87274 kbytes/sec
        middle:        102400 kbytes in   0.127437 sec =   803534 kbytes/sec
        inside:        102400 kbytes in   0.158045 sec =   647917 kbytes/sec

# diskinfo -t /dev/vtbd1
Transfer rates:
        outside:       102400 kbytes in   0.821785 sec =   124607 kbytes/sec
        middle:        102400 kbytes in   0.944996 sec =   108360 kbytes/sec
        inside:        102400 kbytes in   1.559300 sec =    65670 kbytes/sec

# diskinfo -t /dev/vtbd2
Transfer rates:
        outside:       102400 kbytes in   1.010801 sec =   101306 kbytes/sec
        middle:        102400 kbytes in   1.159860 sec =    88287 kbytes/sec
        inside:        102400 kbytes in   2.162935 sec =    47343 kbytes/sec

Т.е.
virtio на хосте: none, в ВМ: 87274 kbytes/sec = 85 MB/s (тут наверное можно привести замер скорости /dev/md2 — 132.29 MB/sec
Hitachi HDS722020ALA330 на хосте: 126.25 MB/sec, в ВМ: 124607 kbytes/sec = 121 MB/s
WDC WD25EZRS-00J99B0 на хосте: 84.98 MB/sec, в ВМ: 101306 kbytes/sec = 98 MB/s

В таком случае получается что LVM не многим проигрывает. я бы сделал на нем.
Честно говоря, не совсем понимаю, что вы имеете в виду. Организовать на оставшихся дисках (sdc и sdd) том LVM. И на нем создать диск Virtio в ВМ? Так?
взамен virtio0: /dev/sdc
Накатить на этот том LVM и добавить из вэб интерфейса.
Насколько я понимаю, том LVM можно добавить как «хранилище» в proxmox, но не как диск ВМ. Или я не прав?
Бесплатный репозитарий (вы же хотите обновляться, наверное?):

echo "deb http://download.proxmox.com/debian wheezy pve pve-no-subscription" >> /etc/apt/sources.list.d/proxmox.list
Спасибо. Но есть мнение, что бесплатный репозитарий опасен нестабильность (начиная с версии 3.1)
Мнение ошибочно. Вот тут подробное объяснение от разработчиков о том, что такое бесплатный репозитарий и чем он отличается от платного.

В частности, цитата:
In short, pve-no-subscription is not a beta or unstable release repository. It is quite stable and well tested software and it is not the replacement of the old beta repo (pvetest). It is a replacement for the pve repository.


Перевод:
Вкратце, pve-no-subscription не для beta- или нестабильных релизов. Он содержит довольно стабильное и хорошо оттестированое программное обеспечение и не является заменой старого beta-репозитария (pvetest). Это замена для репозитария pve.
Спасибо за очень полезную для меня новость. Т.о. можно смело ставить pve-no-subscription в своих серверах?
Ну, я использую. Правда, рабочие проекты обновляются крайне редко. :)
Добавил вашу команду в статью.
Теперь добавим раздел boot с первого (sda) диска в массив. Сначала пометим его флагом «raid»:

# parted -s /dev/sdb set 2 «raid» on

вероятно

# parted -s /dev/sda set 2 «raid» on
Несколько критических замечаний.

1. Форматирование (b) не работает в квоте. Соответственно, строки нельзя копировать вслепую — мелочь, а неприятно (относится к missing)

2. После внесения правок в /etc/fstab необходимо отмонтироваться — umount /mnt/md1 — иначе, как ни странно, изменения не зачтутся и система на второй ребут выпадет в grub shell.

3. После vgreduce необходимо сделать pvremove /dev/sda3 — иначе система не поймет что произошло с дисками и не загрузится дальше initramfs-консоли

В остальном спасибо — если бы не эти досадные мелочи — процедура заняла бы три часа, а не два дня :)
Справедливости ради должен сказать: поддержку только первый пункт — про форматирование.

Пункты 2 и 3 у меня не проявились, делал все четко по инструкции.

Проводил эту операцию на версии 3.3, на нескольких серверах
Провожу операцию сейчас — говорю на основе своих реалий
В любом случае, полученные опытным путём пункты 2 и 3 не несут вреда, а скорее логически завершают то или иное действие. Первый день я тупо по-обезъяньи всё копировал из статьи, на второй уже полез копать логики и пришёл к этим выводам — не так давно достроился второй рейд и всё работает!
1. Форматирование (b) не работает в квоте. Соответственно, строки нельзя копировать вслепую — мелочь, а неприятно (относится к missing)
Долго не мог понять, что за форматирование (вроде не было никакого форматирования в статье :) ). Спасибо за напоминание. Давно хотел убрать. Убрал.
А по остальным пунктам — честно говоря, даже не верится. Я по своей же инструкции устанавливал уже несколько серверов и с проблемами описанными вами ни разу не сталкивался. Вы уверены, что делали все в точности в той последовательности как в инструкции?
2. После внесения правок в /etc/fstab необходимо отмонтироваться — umount /mnt/md1 — иначе, как ни странно, изменения не зачтутся и система на второй ребут выпадет в grub shell.
У меня в инструкции сразу после правки fstab идет перезагрузка. Смысл отмонтирования. Очень странно.
3. После vgreduce необходимо сделать pvremove /dev/sda3 — иначе система не поймет что произошло с дисками и не загрузится дальше initramfs-консоли
А вы делали
pvmove /dev/sda3 /dev/md2
?

PS Кстати, если есть интерес, могу выложить еще вариант инструкции для переезда не на RAID1, а на RAID10. Правда boot-раздел будет все равно на RAID1 (из 4-х дисков ;) ), а LVM на RAID10.
Не склонен спорить или обманывать. Суть именно в том, что без отмонтирования после ребута /dev/md1 был пуст и грузился с Ctrl+D, а без pvemove (и да, после pvmove) мокс не понял что именно от него хотят после ребута и куда делись его файлы рут — точный текст ошибки не повторю, уже не хочется устраивать тестов на настроенной машине

Конфигурация:

— Supermicro X7DVL-3
— HDD в режиме Extended SATA, без fake raid, с предварительно очищенными GPT
description: ATA Disk
product: WDC WD1003FBYX-0
vendor: Western Digital
physical id: 2
bus info: scsi@4:0.0.0
logical name: /dev/sdb
version: 01.0
serial: WD-WMAW30171635
size: 931GiB (1TB)

То есть, ничего вроде как необычного — но из-за двух таких мелочей потратил много времени и надеюсь, что кому-то эти дополнения помогут. Может быть, дело в кеше, может — где-то ещё бага :)

kbdone.com/proxmox-ve-3-2-software-raid/ — нашел в истории инструкцию, которую использовал для перестраховки на второй день, чтобы понять где может закрасться ошибка — там есть анмаунт и ремув.
Не склонен спорить или обманывать.
Простите. Я конечно же некорректно выразился. Не имел желания вас обидеть.
Внес ваши правки в статью. Спасибо!
gep2005 Поставил поиграться 4ю бэту. Груб в упор не хотел видеть диски пока не поплясал с бубном.
Помогло либо это: vladimir-stupin.blogspot.com/2012/05/lvm.html (а именно)
# apt-get install lvm2
# cp /usr/share/initramfs-tools/hooks/lvm2 /etc/initramfs-tools/hooks/
# cp /usr/share/initramfs-tools/scripts/local-top/* /etc/initramfs-tools/scripts/local-top/
# update-initramfs -u


Либо то что собрал initramfs без параметра -u, а с -c
Sign up to leave a comment.

Articles