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

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

Подборка роликов PostgresQL Pro

Ускоряем ВМ

ТЗ: Вам понадобилось ускорить работу ВМ на 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го.
----------------------------------------------------

вторник, 1 августа 2017 г.

Увеличение диска LVM Xenserver 7 Centos 6.8

1) Выключить вм
2) Увелиличть размер выделяемого пространства или добавить новый диск для вм в данном примере добавил 60Гб
3) Включить VM
df -h
---------------------------------------------------------------
#[root@pc1 ~]# df -h
#Filesystem            Size  Used Avail Use% Mounted on
#/dev/mapper/VolGroup-lv_root
#                       50G   47G   43M 100% /
#tmpfs                 497M  4,0K  497M   1% /dev/shm
#/dev/xvda1            477M   52M  400M  12% /boot
#/dev/mapper/VolGroup-lv_home
#                      7,3G   17M  7,0G   1% /home
---------------------------------------------------------------
fdisk /dev/xvda
m
n
p
3
Enter
Enter
t
3
w
---------------------------------------------------------------
# Команда (m для справки): m
#Действие команды
#   a   переключение флага загрузки
#   b   редактирование метки диска bsd
#   c   переключение флага dos-совместимости
#   d   удаление раздела
#   l   список известных типов файловых систем
#   m   вывод этого меню
#   n   добавление нового раздела
#   o   создание новой пустой таблицы разделов DOS
#   p   вывод таблицы разделов
#   q   выход без сохранения изменений
#   s   создание новой чистой метки диска Sun
#   t   изменение id системы раздела
#   u   изменение единиц измерения экрана/содержимого
#   v   проверка таблицы разделов
#   w   запись таблицы разделов на диск и выход
#   x   дополнительная функциональность (только для экспертов)
#
#Команда (m для справки): n
#Действие команды
#   e   расширенный
#   p   основной раздел (1-4)
#p
#Номер раздела (1-4): 3
#Первый цилиндр (7833-15665, default 7833):
#Using default value 7833
#Last цилиндр, +цилиндры or +size{K,M,G} (7833-15665, default 15665):
#Using default value 15665
#
#Команда (m для справки): t
#Номер раздела (1-4): 3
#Шестнадцатеричный код (введите L для получения списка кодов): 8e
#Системный тип раздела 3 изменен на 8e (Linux LVM)
#Таблица разделов была изменена!
#
#Вызывается ioctl() для перечитывания таблицы разделов.
#
#WARNING: Re-reading the partition table failed with error 16: Устройство или ресурс занято.
#The kernel still uses the old table. The new table will be used at
#the next reboot or after you run partprobe(8) or kpartx(8)
#Синхронизируются диски.
---------------------------------------------------------------
reboot
---------------------------------------------------------------
pvcreate /dev/xvda3
---------------------------------------------------------------
#Physical volume "/dev/xvda3" successfully created
---------------------------------------------------------------
vgextend VolGroup /dev/xvda3
---------------------------------------------------------------
#Volume group "VolGroup" successfully extended
---------------------------------------------------------------
lvextend -L+60G /dev/VolGroup/lv_root
---------------------------------------------------------------
#Insufficient free space: 15360 extents needed, but only 15359 available
---------------------------------------------------------------
lvextend -L+59.99G /dev/VolGroup/lv_root
---------------------------------------------------------------
#  Rounding size to boundary between physical extents: 59,99 GiB.
#  Size of logical volume VolGroup/lv_root changed from 50,00 GiB (12800 extents) to 109,99 GiB (28158 #extents).
#  Logical volume lv_root successfully resized.
---------------------------------------------------------------
resize2fs /dev/VolGroup/lv_root
---------------------------------------------------------------
#resize2fs 1.41.12 (17-May-2010)
#Filesystem at /dev/VolGroup/lv_root is mounted on /; on-line resizing required
#old desc_blocks = 4, new_desc_blocks = 7
#Performing an on-line resize of /dev/VolGroup/lv_root to 28833792 (4k) blocks.
#The filesystem on /dev/VolGroup/lv_root is now 28833792 blocks long.
---------------------------------------------------------------
reboot
4) Всё готово создан "раздел", перезагрузка, создан "физический том", добавлен в "группу томов", расширен на 59.99Гб, увеличена файловая система EXT до размера "группы томов", перезагрузка. Можете опять проверить занятое пространство
df -h

--------------
Всем спасибо за внимание)))

четверг, 13 июля 2017 г.

Второй шанс RHEL для ARM ))

Недавно на просторах сети откопал интересный проект ссылка http://fedberry.org/
Установил, настроил первые 2 дня полет нормальный, не сыплется через недельку попробую обновиться и установить какую-нибуть програмку типа апача и пхп на него.

пятница, 16 июня 2017 г.

Квест ДНС для Bind9 Raspbian 8

МикроКвест ДНС для Bind9 Raspbian 8
--------------------------------------
Если надо активировать супер пользователя просто назначаем ему пароль
passwd root

Если не входит по ssh при правильных настройках то переконфигурируем
sudo rm /etc/ssh/ssh_host_* && sudo dpkg-reconfigure openssh-server

Настроим отключим лишнее включим нужное:
raspi-config

Если нет дшцп сервера то до того как вставить флешку в микрокомпьютер добавить строку через пробел в фаил cmdline.txt после слова rootwait

ip=192.168.0.200::192.168.0.1:255.255.255.0:rpi:eth0:off

Настроим статический адрес
nano /etc/network/interfaces

iface eth0 inet static
    address 192.168.0.155
    netmask 255.255.255.0
    gateway 192.168.0.1
    dns-nameservers 127.0.0.1

Обновимся и перезагрузимся
apt-get update && apt-get upgrade -y && reboot

Установим сервер имен и проч утилиты.
apt-get -y install bind9 dnsutils mc vim htop iftop screen

Пропишем пути файлов зон
vim /etc/bind/named.conf.local
и если создавали свои папки надо доступ к ним например создали папку "named"
chown bind:bind  /var/named

Пропишем опции сервера имён
vim /etc/bind/named.conf.options

Перезапустим и Проверим статус сервера имён
/etc/init.d/bind9 restart
/etc/init.d/bind9 status

Допишем статичные имена и адреса напрмер микрокомпьютера
vi /etc/hosts
127.0.0.1       localhost 200-pc 200-pc.domain.ru
::1             localhost ip6-localhost ip6-loopback 200-pc 200-pc.domain.ru
ff02::1         ip6-allnodes
ff02::2         ip6-allrouters
192.168.0.155 200-pc 200-pc.domain.ru
127.0.1.1       200-pc

Проверим где микрокомпьютер будет искать имя
cat /etc/resolv.conf
тут должен быть
# Generated by resolvconf
domain domain.ru
nameserver 127.0.0.1

Если у вас иначе даже после перезагрузки то посмотрим откуда беруться ноги
cat /etc/resolvconf.conf
и раскомментируем строку
name_servers=127.0.0.1

# Mirror the Debian package defaults for the below resolvers
# so that resolvconf integrates seemlessly.
dnsmasq_resolv=/var/run/dnsmasq/resolv.conf
pdnsd_conf=/etc/pdnsd.conf
unbound_conf=/var/cache/unbound/resolvconf_resolvers.conf

Перезапустимся и проверим
dig ya.ru && nslookup ya.ru
должно появится что-то подобное в конце:
Server:         127.0.0.1
Address:        127.0.0.1#53

Non-authoritative answer:
Name:   ya.ru
Address: 87.250.250.242
Это значит что ответил локальный сервер имён.

Также если необходимо можем настроить клиента dhcp сервера
vi /etc/dhcp/dhclient.conf

например раскомментируем строки:

prepend domain-name-servers 127.0.0.1;
lease {
  interface "eth0";
  fixed-address 192.168.0.155;
#  medium "link0 link1";
  option host-name "200-pc.domain.ru";
  option domain-search "domain.ru";
  option domain-name "domain.ru";
  option subnet-mask 255.255.255.0;
  option broadcast-address 192.168.0.255;
#  option routers 192.33.137.250;
  option domain-name-servers 127.0.0.1;
#  renew 2 2000/1/12 00:00:01;
#  rebind 2 2000/1/12 00:00:01;
#  expire 2 2000/1/12 00:00:01;
}
Перезапустить сеть
/etc/init.d/networking restart

Отключить dhcpd
 systemctl disable dhcpd

Проверим правила Iptables
 iptables -L -v -n

Сохраним правила Iptables TCPv4
iptables-save > /etc/iptables/rules.v4

Установить программу для управления iptables
apt-get install iptables-persistent
------------------------------------------------------
ОБЯЗАТЕЛЬНО!!! По умолчанию (default) все порты открыты для доступа! (ACCEPT) их надо закрыть кроме нужных типа 22 и 53 и похорошему порезать всё лишнее (DROP) в конце перед COMMIT.

вторник, 23 мая 2017 г.

Квест ДНС

Исходные данные:
хост XenServer 7, вм Centos 7, оперативная память 2gb, диск 10gb,
ip адреса: домен 192.168.1.87, днс1 192.168.1.88, днс2 192.168.1.89, днс3 192.168.1.90

Экспресс решение без отладки (не использовать на боевых серверах):
mount /dev/cdrom /media
mount /dev/cdrom /media
или
mount /dev/sr0 /media
cd /media/Linux
./install.sh
Y

ifup eth0

yum -y update && yum -y install epel-release
reboot
yum -y install bind* iptables-services vim
yum -y install authconfig krb5-workstation pam_krb5 /
samba-common oddjob-mkhomedir krb5-server /
krb5-libs realmd sssd sssd-tools adcli samba-winbind /
samba-winbind-clients

systemctl enable winbind.service
или
chkconfig winbind on

systemctl enable named.service
или
chkconfig named on

systemctl enable iptables.service
или
chkconfig iptables on

vi /etc/hosts

127.0.0.1       ns1.domain.local ns1 localhost.localdomain   localhost4      localhost4.localdomain4 localhost
::1     ns1.domain.local ns1 localhost.localdomain   localhost6      localhost6.localdomain6 localhost
192.168.1.88 ns1.domain.local ns1

vi /etc/sysconfig/named

OPTIONS="-4"

vi /etc/sysconfig/iptables

-A INPUT -p tcp -m state --state NEW -m tcp --dport 22 -j ACCEPT
-A INPUT -p tcp -m state --state NEW -m tcp --dport 53 -j ACCEPT
-A INPUT -p udp -m state --state NEW -m udp --dport 53 -j ACCEPT

systemctl stop firewalld
или
/etc/init.d/firewalld stop

systemctl disable firewalld
или
chkconfig firewalld off

vi /etc/sysconfig/network-scripts/ifcfg-eth0

DEVICE=eth0
HWADDR=4b:c1:e8:45:63:a2
TYPE=Ethernet
UUID=f4801836-64aa-45ba-ba0e-d1da4af5bcd3
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
USERCTL=no
PEERDNS=no
IPV6INIT=no
IPADDR=192.168.1.88
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
DNS1=127.0.0.1
DOMAIN= domain.local

systemctl restart network.service
или
/etc/init.d/network restart
cat /etc/resolv.conf

search domain.local
nameserver 127.0.0.1

vim /etc/named.conf

listen-on port 53 { any; };
listen-on-v6 port 53 { any; };
allow-query     { any; };
allow-transfer  { any; };
allow-update    { any; };
dnssec-validation no
notify yes;
recursion yes;
database "dlopen /usr/lib64/samba/bind9/dlz_bind9_9.so";
zone "domain.local" IN {..................};
zone "1.168.192.in-addr.arpa" IN {................};
zone "a.b.a.b.a.b.a.b.a.b.a.b.0.0.c.f.ip6.arpa" IN {...........};
zone MSDNS .....;;;;;;

Создать файлы описания зон днс и дать права named на запись и чтение.

systemctl restart named.service
или
/etc/init.d/named restart

dig ya.ru
dig domain.local

systemctl status iptables.service -l
или
cat /var/named/data/named.run
reboot

nslookup ns1. 192.168.1.88
nslookup 192.168.1.89 192.168.1.88
nslookup ya.ru. 192.168.1.88
nslookup domain.local. 192.168.1.88

Далее приступаем к отладке и настройке. Файлы конфигурации зон нужны тока для master bind9, slave их синхронизирует в одну сторону, серийный номер при ручном изменении удобно записать ввиде YYYY/MM/DD HH:MM:SS например я только что внес изменения это номер 20170523180100, если вводить в домен МСДНС предварительно настроить синхронизацию времени. Для IPv6 localhost это ::1
------------------------------------------------------------

суббота, 20 мая 2017 г.

Достало

Вообщем после вылавливания кучи ошибок могу сделать вывод что стабильно работает только версия pidora r3 на rpi. Centos7 и Fedora25 постоянно падают, что то сыплется, исправления есть но их так недостаточно что перекрывает все положительные стороны сборок RHEL для RPI3. Использовать на данный момент не считаю целесообразным. Возможно в будущем компания обратит внимание на ARM устройства, на данный момент остается в нише для высоко нагруженных серверов и и виртуализации 64битных intel/amd систем. Сборки на Debian работают стабильно. Если сейчас (06.2017) выбираете ос для rpi3 то съекономьте время выбирайте из сборок на Debian.

среда, 17 мая 2017 г.

Настроить ДНС windows командная строка

Исходные данные:

Домашняя сеть, пк windows os подключен к роутеру с модемом 3g, скачана и включена программа тимвивер, id и пароль тимвивер известны.

Решение:

Запустить командную строку от имени администратора:
"WIN"+"R"
cmd.exe
Узнать имя сетевого интерфейса:
netsh interface ip show config
Установить адрес и шлюз
netsh interface ip set address "Ethernet 2" static 192.168.0.2 255.255.255.0 192.168.0.1
Установить основной сервер имён:
netsh interface ip set dnsservers "Ethernet 2" static 192.168.0.1
Добавить дополнительный сервер имён:
netsh interface ip add dnsservers "Ethernet 2" 77.88.8.8
netsh interface ip add dnsservers "Ethernet 2" 77.88.8.1
netsh interface ip add dnsservers "Ethernet 2" 2a02:6b8::feed:0ff
netsh interface ip add dnsservers "Ethernet 2" 2a02:6b8:0:1::feed:0ff

среда, 5 апреля 2017 г.

Переписка двух менеджеров (поколение 2000-х)

- Ты в c# как соображаешь?
- неа яж не программист
- это объектный язык, значит управляет объектами, есть готовые шаблоные и образцы Microsoft .NET Framework зачем с нуля писать?
- тебе что понятней было представь ввиде слоев или шестеренок
- 1 уровень железо, 2 уровень электричество, 3 уровень драйвер или микро ОС УЕФИ(бывший биос), 4 уровень ОС хоста, 5 уровень виртуальные контейнеры
- так вот четких границ по сути нет оно плавно перетекает из одного в другое
- теперь возьмем уровень "реализации" программы: её можно писать на любом уровне слоев
- всё зависит от предназначения (для кого она)
- если ей пользуются на уровне ОС хоста виндовс то C# как раз самое то
- но если ей пользуются любые пользователи на уровне виртуальных контейнеров, то есть платформа Net.Framework
- работая с платформой тебе не надо задумываться и прописывать скажем зависимости библиотек видеокарты для отображения окна, это всё уже прописано в виде C# и является частью платформы NET.fr
- означает что достаточно выполнить команду "вызвать окно" и оно появится
- в этом и прелесть объектных языков
- это как матрешка если аналог привести.
- можно конечно написать на Си и запустить программу прямо на уровне УЕФИ но кто этим будет пользоваться? и как сложно будет учесть все нужные библиотеки?
- Я на работе постоянно общаюсь с разработчиками платформы 1с предприятие. И почти все постоянно пытаются изобрести велосипед))) Хотя любая интеграция это всеголишь создание новой библиотеки в которой указаны как в переводчике команды в 1с = комнады в Пайтон. Таким образом мы теперь можем использовать любые программы на Пайтон из платформы 1с. И не надо изобретать велосипедов))
- Если есть деньги и нет времени то сайт фриланс.ру тебе в помощь
- Если нет денег то берешь букварь по C# и гугл все типовые случаи там описаны.
- Отдельно замечу что нетиповые это набор из множества типовых. Конструктор в своем роде, а создатель как художник лепит из него программы.