Pull to refresh

Comments 64

я сейчас продолжаю настраивать это сервер.
настроил поддержку VLAN для виртуальных машин — оказалось, что по этому вопросу очень мало достоверной информации и она очень противоречива. если будет время, попробую выпустить отдельной заметкой.
так же думаю описать, как у меня с горем пополам получилось переконвертировать несколько разнотипных виртуалок с Esxi6 — думаю тоже кому то, да пригодится.
а что там такого сложного с vlan?
Уже лет 8 использую bonding,vlan,bridge.
Основная сложность была в момент перехода proxmox на openvswitch, так как в debian свое видение конфигов.
Ну и народ еще забывает при использование HA, что кластер общается по мультикасту :)
основная сложность была изменить представление настройки, после панели Esxi6. :)
особенно постоянно перезагружать сервер, даже после добавления комментария к интерфейсу.

пробовал по трем разным статьям. ничего не получалось.
пробовал точь в точь с wiki proxmox — не завелось.
в итоге дошел сам.
вот то получилось:
auto lo
iface lo inet loopback

iface eth0 inet manual

iface eth1 inet manual

#VLAN 2 Amega
auto eth0.2
iface eth0.2 inet manual
vlan_raw_device eth0

#VLAN 50 DFSK
auto eth0.50
iface eth0.50 inet manual
vlan_raw_device eth0

#VLAN6 IDPhone ADSL
auto eth0.6
iface eth0.6 inet manual
vlan_raw_device eth0

auto vmbr0
iface vmbr0 inet manual
bridge_ports eth0
bridge_stp off
bridge_fd 0

auto vmbr1
iface vmbr1 inet static
address 10.10.10.1
netmask 255.255.255.0
bridge_ports eth1
bridge_stp off
bridge_fd 0

auto vmbr2
iface vmbr2 inet static
address 192.168.1.3
netmask 255.255.255.0
gateway 192.168.1.1
bridge_ports eth0.2
bridge_stp off
bridge_fd 0

кстати, как я понимаю, теперь mvbr0 — можно вообще удалить, т.к. management интерфейс нужен в VLAN2…
я вот тут писал — http://unixforum.org/index.php?showtopic=136947
Там в конце примеры конфигов, правда они и сейчас наверно требует правок и дополнений.
Просто я еще использую объединение интерфейсов :)
а объединение в данном случае для чего?
транковые группы?
bonding используется для отказоустойчивости + увелечение производительности сети (условно)

https://en.wikipedia.org/wiki/Link_aggregation

Пример, есть 4 сетевые карты eth0,1,2,3, делается единый интерфейс bond0, на него уже вешается vlan0,vlan1,vlan2 + n и уже vlan могут быть сбриджеванны с вирт машинами.

Надо понимать только про некий overhead по пакетам и насколько у вас стоят задачи так делать и насколько вам будет так удобно и нужно ли вообще. Я обычно делаю на автомате, если конечно позволяют мощности сети. Везде нужен здравый смысл.
Я бы сказал, что статья из серии: как перенести установленную linux на soft-raid при наличие свободных дисков и, что она изначально на LVM (масса очепяток в статье). Таких статей много, новизны информации нет. В данной статье, к сожалению, многое описано как «черная магия».
я был бы очень благодарен, если бы вы подсказали, где именно очепятки.
тогда я бы оперативно их исправил.
раз уж не удивил вас новизной, так хоть уберу банальные ошибки…
Вариации букв LVM, это основное.
вопрос вот такому моменту:
Планируется установить Proxmox на отдельный диск + 2-а массива raid 1 по 4 тб созданные на программном рейде десктопной материнской платы до установки Proxmox
Установленная виртуалка на Proxmox Debian 8 увидит эти массивы?
Их потом можно примонтировать?
Proxmox — система на ОС debian. Программный и аппаратный рейд он скорее не распознает и будем думать что это один простой диск. Монтировать его в этом случае можно стандартными средствами Debian
mount /dev/sdX /mnt/disk2 и прописать в fstab что бы запускался с загрузкой системы. А в Промоксе добавить этот раздел как папку в разделе Storage.
другой вопрос: если вы на этом разделе будете хранить контейнеры — то лучше изначально создать его как LVM-thin, а потом в промаксе подключить. Можно будет на ходу менять размеры контейнеров.

вот кстати фокус с програмным рейдом из под материнки у меня не вышел с Esxi6 — та просто видела их как отдельные диски. А на форуме у них так и написано — с программными не дружим и не собираемся. покупайте железку. Это одна из причин, почему начал пробовать заморачиваться с Промоксом.
про видимость массива из виртуалки не понял. проще использовать рейд в самом промоксе, на нем для этой виртуалки «отрезать» с LVM нужный кусок…
RAID в большинстве десктопный материнок — это так называемый fake-raid. По русски — липовый. По сути это вариация на тему с soft-raid замаскированная под железячную. В linux с ним может работать dmraid (используя подсистемму device mapper) и работает не со всеми контроллерами. Работает это обычно с чудесами в самые неожиданные моменты, и им крайне трудно управлять из ОС. Рекомендую перевести эти диски в обычный mdadm (soft-raid), и управляемость и стабильность выше.
Я обычно в таком случаи идут немного другим путем, а именно путем debotstrap.
Грузимся, размечаем как надо и ставим всю систему.

Сейчас вполне идут игры с ZFS и использования кеша L2 как на SSD так и на в памяти.
Профит велеколепный! Там же удобно делать raid, снепшоты и не городить огород.
Вот про это я бы с удовольствием почитал.
Тем более что как раз лежит в резерве SSD64Gb.

попробовал при загрузке в инсталлере выбрать не раздел, а ZFS и собрать из 4х дисков.
ничего не вышло.
На сколько я понял, проблема была UEFI — который этот сервер не поддерживает.
можно начать вот тут

https://habrahabr.ru/post/272249/
да, теперь убедился, что у меня проблема была именно в UEFI
сейчас закончу с этим сервером, перенесу на него виртуалки со второго.
а вот на втором, более свежем, как раз два диска — сделаю по вашей инструкции, а заодно поиграю с кэшем.
на всякий случай, инструкция не моя.
с UEFI ситуацию так же можно вполне разрулить, но я уже насктолько привык все делать скриптами — что уже не использую стандартный установщик. Хотя тут наверно еще привычки с gentoo/archlinux, где по сути нет установщика.
Процесс долгий. У меня занял порядка 10 часов. Интересно, что запустил я его по привычке будучи подключенным по SSH и на 1,3% понял что сидеть столько времени с ноутом на работе как минимум не удобно. Отменил операцию через CTRL+C


Во избежание подобных ситуаций рекомендую посмотреть в сторону tmux,screen и других менеджеров терминалов. Это первое, что я обычно запускаю после входа по ssh на свежий сервер.
да, именно screen пользуюсь. но в данном случае сервер был в 3 шагах от меня.
ну то есть, поднять debian, поднять на нем RAID10, разметить LVM, потом сверху установить proxmox?
а в чем разница по скорости?

Разница в том, что Debian можно сразу установить на Raid10.
По сути, не придется делать ничего из того, что у вас описано.


Плюс гибкость в установке. Все же это Debian.

ничего не понял. как так сразу? в смысле создать через Raid10 в процессе установки debian через разметку дисков?

по поводу гибкости — в чем именно? Proxmox основан на дебиане, по сути…
при установке debian много вопросов задает в начале, потом может и проще.
Proxmox — косит под коробку — нажал 3 кнопки и готово. потом вот пришлось такую статью попутно писать, пока настраивал и разбирался.
возможно вы и правы :)
ничего не понял. как так сразу? в смысле создать через Raid10 в процессе установки debian через разметку дисков?

Да. В инсталляторе создать рейд, и поставиться на него. В итоге не будет шаманства с дисками, и шаманства с LVM.
Гибкость в том, что на этапе инсталляции вы вольны разбить диски как вам вздумается. Например, откусить немного места под систему, и поставиться хоть на Raid1 из 4 дисков (имеет смысл, кстати). А оставшееся место использовать под Raid10.


Поставили Debian, накатили Proxmox. Все.


Косит-то он под коробку, жаль, что толку от этого мало. Приходится выбирать между коробочностью и продуктивностью.

в debian можно создать файл ответа и автоматизировать установку.
В итоге используя tftp, делалась установка по сети. День работы, стойка с proxmox готова без особого напряга.
думал об этом. из этой статьи можно по сути, сделать файл ответов с несколькими входными данными типа кол-ва винтов, типа рейда и тд.

ВООБЩЕ никаких танцев с бубном. Абсолютно. Просто ставишь дебиан как обычно, сверху проксмокс по инструкции.


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


Именно вы, автор, избрали невменяемый путь, хотя рядом есть правильный, простой и надёжный.

ну если вы прочитали статью до конца, но могли заметить, что статья была не только и не столько про установку промокса как обычно. это скорее моя практика работы с LVM и уведомлениями после установки.
Сто раз плюсую. Сам так делал. Просто. Быстро. Надежно.
Никаких «плясок с бубном». Рейд собибирается из визарда при инсталяции дебиана. Потом подключается дополнительная репа и apt update & install. И все! Просто ВСЕ! Ничего больше делать не надо!
напомните, как в визарде задать размер chunk?
я вот сейчас хочу все это сделать на виртуалке с 4мя винтами.

Ну, да, это в гуи никак. В инсталляторе дебиана alt+f2 и делайте раиды руками. Там можно настроить ЧТО УГОДНО.

Может тогда ставить именно Proxmox, но на ZFS, что он умеет «из коробки» (прямо кнопкой из диалога выбора диска)?
Тут в данной конфигурации может ожидать неожиданность — ZFS требует много памяти, а на данном сервере её и так маловато
Я бы сказал по другому, у ZFS есть свои подводные камни.
Памяти он не особо требует много, если мы не начинаем заниматся с L2ARC итд.
Хотя если памяти очень много, я бы рекомендовал это сделать + SSD под еще один кеш.
а можете привести сравнение по памяти?
к примеру, сервер с 32Gb ОЗУ и 6 винтов Х 4Gb
памяти на работу с ZFS уходит 6Gb
что бы грубо представить.
понятное дело, что расходование сильно зависит от проводимых операций…
все зависит от настроек. Сжатие, дедупликация, пулы и предсказания.
минимально zfs требует 1Gb.
Если памяти мало то vfs.zfs.prefetch_disable=1 – отключение режима prefetch
vfs.zfs.arc_max — сколько будет кешироватся данных в пуле.

Если все по default и почитать гайд http://www.solarisinternals.com/wiki/index.php/ZFS_Best_Practices_Guide
Станет понятно, что zfs старается забрать всю память кроме 1 Gb, но когда она потребуется он ее освободить. Я обычно прибиваю это гвоздями и отдаю не больше 4gb, остальное кеш на ssd.
Кешировать без SSD только в память бесмысленно, при перезагрузки вам надо опять будет прогревать кеш.
в моем случае не получилось. т.к. сервер не поддерживал UEFI
система попросту не загрузилась после установки.
UFO just landed and posted this here

Что касается удобства диагностики, то тут программному равных нет. Вон, amarao любит про это.
А горячая замена есть в SATA уже лет десять.

про программный и аппаратный RAID уже сломанно много копий. Если задачи относительно простые, то лучше программный.
UFO just landed and posted this here

Да, про программный. Но вообще горячая смена дисков SATA не имеет прямого отношения к программному RAID — это просто способность AHCI свободно подключать и отключать устройства. Просто эта способность очень пригодилась именно в инсталляциях с программным RAID, и как сухой остаток — в программном массиве уже лет десять как можно менять винты на горячую (т.е., не останавливая ОС и прозрачно для прикладных задач).


Например, если вы когда-нибудь использовали любую Synology DS (даже старшие модели, которые на самом деле представляют из себя стоечные серверы на i3) — там везде внутри именно Linux Software RAID в чистом виде и всё на горячую меняется. Уже давно.

Остнастка есть. но мне нужен был именно LVM. Система для продакшена, но сервер будет выполнять скорее резервные функции, для экстренного переноса некоторых виртуалок с основного кластера, в случае проблем.
На счет аппаратного, скажу честно, сам не сравнивал, но тут на хабре есть ряд статей, которые, в целом, говорят о 6-8% прироста скорости по сравнению с программным. Опять же, у нас есть сервера разношерстные и, как минимум, узким местом становится сам железный контроллер. В программном, я могу в любом момент развернуть новый дебиан и восстановить массив. А в случае с железным — нужно держать ЗИП на каждый такой сервер.
да и не хотелось на этот сервер докупать что-то дополнительно.
>А в случае с железным — нужно держать ЗИП на каждый такой сервер.

Мне кажется нужно держать Backup, не? :)
Хотя в общем мысль конечно ясно.
Бакап конечно есть, но хотелось бы заменить винт и включить сервер, нежели переливать пару терров. В общем то я и задался такими вот экспериментами, чтобы бакапы отодвинуть как последнюю инстанцию

Нет, неверно. Бекап предназначен для резерва на случай человеческого фактора, и не предназначен для резервирования на случай аппаратных сбоев.


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

UFO just landed and posted this here
А почему у RAID'а chunk всего 2 килобайта? Сейчас же новые диски идут с секторами по 4 килобайта, соответственно, с меньшим chunk'ом можно здорово потерять в скорости.
а вот это попробую протестировать на лаб-сервере… отличный вопрос!
Ещё и разметка диска не выравнена по секторам. Первый раздел начинается с первого килобайта. В общем, какая-то дикая разметка диска…
Подскажите, как сделать правильно? У меня второй сервер на очереди. За одно и тут поправлю.
man parted

-a alignment-type, --align alignment-type
Set alignment for newly created partitions, valid alignment types are:

none Use the minimum alignment allowed by the disk type.

cylinder
Align partitions to cylinders.

minimal
Use minimum alignment as given by the disk topology information. This and the opt value will
use layout information provided by the disk to align the logical partition table addresses to
actual physical blocks on the disks. The min value is the minimum aligment needed to align
the partition properly to physical blocks, which avoids performance degradation.

optimal
Use optimum alignment as given by the disk topology information. This aligns to a multiple of
the physical block size in a way that guarantees optimal performance.
Первый раздел обычно начинает с 2048 сектора, это если сектора программа считает по 512 байт. Получается, что раздел начинает со второго мегабайта. Размер раздела должен быть кратен четырём килобайтам, следующие разделы так же должны быть сразу после предыдущего, либо пропуск должен быть кратен четырём килобайтам. Если короче, то каждый раздел должен начинаться с позиции на диске, кратной четырём килобайтам.
В самой файловой системе использовать размер кластера так же кратным четырём килобайтам. И размер чанка у рейда установить кратным четырём килобайтам. Обычно, его и ставят размером 4096 байт.
Нашел неплохую статью (@dmbarsukov), по поводу смены чанка на действующей системе. И в этой же статье ссылка на отличную таблицу, которая я думаю многим пригодится.
К сожалению на этом сервере уже не смогу поиграть. А вот на лабораторном думаю смогу поднять текущую конфигурацию и применить эту статью по подбору верного решения.
Ну, если учитывать, что по умолчанию mdadm использует размер чанка в 64К, а то и в 512К, то не совсем понимаю, зачем надо было ставить такой маленький размер. Для какой цели? Зачем его вообще было вручную задавать? Какую цель преследовали?
вот этот момент я упустил и с чего-то взял, что делает он по 1024, вот и задал по 2048.
считаю должным поправить этот момент в статье.

Да можно переделать, можно. У вас очень гибкая структура, которая переживёт такую переделку без останова сервисов (но, конечно, на период миграции диски будут притормаживать).

сейчас на другом сервере два винта по 930Гб (vmware) собрал в рейд-1 стандартными средствами.
chunk при этом там равен 65536 KB
что я полагаю, тоже не совсем верно?

чанк раида 64 метра? Вы что-то неправильно поняли. Это скорее чанк VMFS5, а не массива

да, возможно…
вывод
root@webmail:~# mdadm --detail /dev/md0
/dev/md0:
Version: 0.90
Creation Time: Wed Nov 16 09:22:51 2016
Raid Level: raid1
Array Size: 964688768 (920.00 GiB 987.84 GB)
Used Dev Size: 964688768 (920.00 GiB 987.84 GB)
Raid Devices: 2
Total Devices: 2
Preferred Minor: 0
Persistence: Superblock is persistent

Intent Bitmap: Internal

Update Time: Wed Nov 16 15:38:08 2016
State: clean
Active Devices: 2
Working Devices: 2
Failed Devices: 0
Spare Devices: 0

UUID: b32c8257:dc8594a5:e5bd13ee:9370e590 (local to host webmail)
Events: 0.3038

Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 49 1 active sync /dev/sdd1

root@webmail:~# cat /proc/mdstat

Personalities: [raid1]
md0: active raid1 sdd1[1] sdb1[0]
964688768 blocks [2/2] [UU]
bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices:

Это не чанк раида, а встроенного write-intent bitmap. Читайте ман, что там искать, я написал.


Размер, блока которыми оперируют RAID-ы, обычно называют полосой (stripe). Да и вообще, для RAID1 подобный параметр не имеет смысла, поэтому и не указывается в --detail и тому подобное.

Sign up to leave a comment.

Articles