Поиск по этому сайту

суббота, 16 декабря 2017 г.

Ускоряем ВМ

ТЗ: Вам понадобилось ускорить работу ВМ на XenServer 7 и они досих пор лежат у вас на локальном сторадже? Надо сделать это с низкой стоимость? Предлагаю готовый рецепт.
-------------------------------------------------------------------

Решение:
Для реализации нам понадобится такие комплектующие:
      (Оговорюсь что можете собирать всё сами индивидуально основываясь на примерах отмечу фишки на что обратить внимание. Распишу всё в общих чертах не вдаваясь в детали т.к. у каждого они будут свои.)
Комплектующие (железо):
  • hp microserver gen10 1шт
(не сильно мощный ЦП AMD, но памятьDDR4 8-16Гб причем серверная без буфера что ускоряет её ввод/вывод и есть коррекция ошибок (при подборе альтернативы оригинальной обратите внимание) и 2 сетевых разъема по 10Гбит/с на чипе совместимом с 100Мбит/с и 1Гб/с (это будет полезно если подключаться к ВЕБ интерфейсу по локальной сети) на момент написания стоила 22тр самая бедная комплектация)
  • 4шт диска по 1-2Тб (я взяд WD blue, всё равно расходник и есть бэкапы)
(диски оригинальные или нет на ваш вкус, цвет, кошелёк :) по поводу "узкого места" в данном примере мы будем обходить его программно с помощью zfs)
  • патчкорд CAT6e
(желательно сразу экранированый не более 15 метров, чем короче тем лучше. Я взял 1 на 15 метров обжатый и взял два экранированных коннектора отрезал 2 метра для соединения хоста и хранилища остальное для соединнения хранилища со свитчом, обжал как обычно (БелЖелт/Желт/БелЗел/Син/БелСин/Зел/БелКор/Кор) )
  • сетевая карта 10Gb на стороне XenServer 7
(встроенные в мою материнку supermicro разъемы сети заняты пришлось докупить внешнюю , можно использовать и 1Гбит-ную, конкретно мне показалось медленным при активной работе 56 ВМ) 
  • ИБП (бесперебойник для хранилища)
(тут два варианта или втыкаете отдельный с USB или цепляетесь к серверу NUT UPS если он уже развернут и питание от него идёт. Посмотрите также список совместимых с FreeBSD бесперебойник чтобы сильно не ковырятся в настройках)
  • Дистрибутив FreeNAS-11.0-U4
(на данный момент была такая версия, выбрал её из-за ZFS и ZRAID можете настроить всё на любом другом дистрибутиве руками, у меня времени было мало "из коробки" тут почти всё заработало)
  • USB флешка 16Гб 2шт
(одна флешка будет рабочей вторая будет резервной копией на всякийпожарный потомучто через год другой вы наврятли вспомните что и как настраивали ОС будем устанавливать на флешку)
  • SSD 250-500Гб (1шт или 2шт / 1шт L2ark / 2шт зеркало Zil)
(можете докупать оригинальный или любой что по душе, можете не докупать, зависит от нагрузок и количества RAM памяти, если вы используете хранилище под резервные копии то не нужны вообще. Скоростные параметры сами подбираете. Использоваться будет максимум 120Гб или 64Гб)
  • sata шлейф 1шт
(у меня был один я не покупал :) )
  • CD привод и диск или эмулятор iso наподобии Zalman VE300, или просто создать загрузочную флешку
(вариант с флешкой не всегда хорош тем что данные могут иногда портится при записи, но очень выручает если например дистрибутив виндовс не имеет поддержки USB3.0 :) )
-----------------------------------------------------------------
Собираем:
         Диски HDD вставляем в корзину, если не родные то болтики вкрутим чтоб держались и потом вставляем.
         Флешку вставляем внутри есть USB разъём, если нет и просто PIN торчит то можно докупить переходник или воткнуть в любой USB разъём.
         SSD и sata шлейф соединяем там есть 1 sata как раз под это дело.
         Пачткордом напрямую соединяем XenServer и Хранилище.
         Второй разъём подключаем в локальную сеть понадобится для работы через Web интерфейс.
         Подключеам ИБП, соединяем USB и втыкаем всё в сеть.
---------------------------------------------------------
Стратегия:
         Дистрибутив установим на флешку, настроим ZFS raid 10, подключим SSD для ускорения, поднимем iscsi (если вы взяли диски по 1Тб то вам доступно будет не 2ТБ а гдето 1500Гб !!! = 80% это рекомендуемые настройки, но по желанию можете установит чек-бокс который отключит эту проверку), примонтируем к XenServer 7 наше хранилище, создадим образ флешки в качестве бэкапа и развернем его на второй флешке. Вторую флешку подключим в хранилище а первую положим в мультифору и приклеем скотчем к хранилищу.
----------------------------------------------------------
Поехали:
      Итак мы имеем в наличии всё железо, все подключили, всё оборудование совместимо.
  Повторяю всё совместимо . А то бывают случаи когда берут 10Гбит/с сетевые карточки Intel которые не поддерживают работу в режиме 1Гбит/с и 100Мбит/с. Следовательно в свитч обычный вы их не воткнёте.
      Подключаем монитор и клавиатуру к Хранилищу вставляем установочный диск.
Устанавливаем как обычно, если вылазят ошибки не пугаемся гуглим, конкретно у меня была ошибка оборудования пришлось дописать пару строк :) при загрузке (ссылка http://www.virten.net/2017/10/fix-for-freenas-on-hpe-microserver-gen10-x3216-stuck-console-issue/)
  1. Когда загрузится Grub Bootloader, нажимаем e для редактрирования
  2. Добавляем параметр set kFreeBSD.hw.pci.realloc_bars=1
  3. Устанавливаем, Перезагружаем, опять в Grub добавляем параметр
  4. Чтобы не делать так каждый раз  в WEB интерфейсе устанавлиеваем доп. параметры  загрузки hw.pci.realloc_bars
    Value: 1
    Type: Loader
Ну это конкретно в моем случае так было.
       Сетевой интерфейс если у вас нет DHCP то тоже настраиваем. Если есть то любой сканер сети  поможет вам определить новое устройство, я использовал "Wireless Network Watcher" т.к. под рукой был только ПК с Виндовс.
       Входим в ВЕБ интерфейс там есть Wisard шляпа нарисована там небольшой квест проходим впринципе всё понятно интуитивно. Но повторюсь шляпа там не просто так :) не используйте этот инструмент для "тонкой настройки".
       Второй интерфейс который подключен напрямую к XenServer 7 сделаем статичным. зададим ip и маску. На XenServer добавим второй интерфейс укажем в нём разъём который напрямую к хранилищу укажем ip маску шлюз можно указать равным ip хранилища.
       SSD мы можем использовать в 2-х вариантах: кэш на запись или кэш на чтение мне надо на чтение. Открываю Volume Manger выбираю свой рэйд. выбираю SSD и в настройках указываю L2ARC нажимаю Extend Volume как видите всё предельно просто, если же вам наоборот надо на запись то выбираете ZIL (отмечу что это всего лишь логи RAM ! данные на SSD при записи попадать не будут, а при чтении мы всеголишь облегчим нагрузку на память если у вас всего 8Гб часть часто используемых будет на SSD). Вообще вся фишка zfs именно с работой в памяти а не напрямую с дисковой системой. (ссылка https://www.cyberciti.biz/faq/how-to-add-zil-write-and-l2arc-read-cache-ssd-devices-in-freenas/ )

Для отказоустойчивости: есть разница между ZIL и L2ARK. Если мы потеряем из строя диск c ZIL то получим ошибку записи следовательно надо делать зеркальный РЭЙД из 2-х SSD (mlc/slc). Если мы потеряем диск с L2ARK то будет всеголишь потеря кэшированных данных = снизится производительность (можно ставить tlc как расходник). В этом примере на плате всего 1 sata разъем поэтому можно поставить 1 ssd tlc и 2 pci-e разъема можно поставить два pci-e ssd mlc и зазеркалить их.
---------------------------------------------------
Заключение: мы всё подключили настроили теперь всё выключаем вытаскиваем флешку с установленой FreeNAS 11 сохраняем "полностью" разметку и содержимое в образ, Вставляем вторую флешку и восстанавливаем из образа все данные и уже эту флешку вставляем обратно в хранилище. Запускуем, проверяем что всё работает. Поздравляю вы только что создали быстрое бюджетное хранилище общая сумма затрат у меня получилась 36т.руб. на данный момент. Почему взял HP? да потомучто я не нашёл сегодня отдельно мать цп корпус оперативку с аналогичными характеристиками по такой же цене и апгрейдить я его не буду.
Основные фишки: ssd и RAM как ускоритель ФС, ddr4, ценник на декабрь 2017го.
----------------------------------------------------

Комментариев нет:

Отправить комментарий