• Pacemaker вылет vm?

    sajor2006
    @sajor2006 Автор вопроса
    Ну я человек. )
    проблема была в meta allow-migrate="true" перевел в false так как у меня не настроена миграция, кластер служить только для перезапуска машин в другом ДЦ в случае отказа первого.

    спасибо.
    Ответ написан
    Комментировать
  • Личные Best Practise построения SAN?

    athacker
    @athacker
    SAN -- это несколько сложнее, чем просто пачка серверов с дисками, включенные в сеть :-)

    > Я бы хотел собрать кластер iscsi(не знаю правильных названий), чтобы подключаться к
    > нему и хранить на нем виртуалки для миграции между серверами(имеется ввиду
    > виртуализация на самом сервере который играет роль хранилища)

    Вы смешали в кучу целую кучу понятий, простите за каламбур :-) iSCSI -- это, если на пальцах, сетевая версия протокола SCSI, который предназначен для доступа к блочным устройствам (хранилищам) через сеть.

    Миграция -- оно совсем никакого отношения к iSCSI не имеет, и реализуется целой кучей технологий, далеко не только с помощью iSCSI-хранилищ.

    "виртуализация на самом сервере, который играет роль хранилища" -- это то, что по-модному называется "конвергентная система". И реализуется отдельной пачкой технологий и продуктов, совсем не обязательно включающих в себя iSCSI.

    В общем, в зависимости от того, что конкретно вы по итогу хотите получить, сценарии и используемый софт будут разными. Блочное хранилище, миграция и конвергенция -- вещи, конечно, связанные, но не одно и то же. Примерно как Карл Маркс и Фридрих Энгельс или, если угодно, Ленин и партия ;-)

    Отвечу по последнему пункту, по конвергентной системе. Если есть желание добиться именно этого, то совсем бесплатно и с большим геморроем можно посмотреть в сторону ceph. На сервера можно поставить линукс, на линукс какой-нибудь гипервизор (типа KVM), а также компоненты ceph. И устроить из всего этого конвергентную систему.

    Есть вариант реализовывать хранилище на виртуальных машинах. Т.е. в первую очередь ставится гипервизор, на нём разворачивается некоторое количество виртуальных машин, в которые презентуются диски с серверов, а потом на основе этих виртуалок сшивается общее хранилище. Так делает EMC ScaleIO, например. По сравнению с Ceph, ScaleIO гораздо проще и логичнее устроено, имеет компоненты и драйвера доступа для линукс, винды и драйвера напрямую под ESXi (т.е. не надо морочиться с сетевыми протоколами типа iSCSI или NFS). Но есть и недостатки -- оно бесплатно официально только для тестовых окружений. Соответственно, в продакшене можно юзать только на свой страх и риск, поддержки от производителя не будет. И оно не очень хорошо документированно по части своих внутренностей. Есть мануалы "как развернуть" и "как управлять", а вот мануалов "как оно может сломаться, почему, и как это чинить" -- увы, нет. Тут только либо натурными экспериментами, либо с помощью сообщества (оно небольшое, но есть), либо забить и использовать что-нибудь другое :-)
    Ответ написан
    2 комментария
  • Личные Best Practise построения SAN?

    @OLQLOSH
    Системный администратор
    freenas+zfs+raidz2
    Ответ написан
    Комментировать
  • Личные Best Practise построения SAN?

    @Karmashkin
    как менее модный вариант: freebsd+zfs+hast.
    Ответ написан
    Комментировать
  • Личные Best Practise построения SAN?

    gbg
    @gbg Куратор тега Linux
    Любые ответы на любые вопросы
    Правила такие
    1. RAID5 - последнее дело. Статистика показывает, что вероятность выхода из строя диска во время ребилда - более 70%. Выход из строя второго диска как правило означает, что массив можно выбрасывать.
    2. Создание RAID средствами аппаратного контроллера - плохая идея. Вы таким образом создаете единую точку отказа (этот самый контроллер). Если контроллер выйдет из строя, вам придется искать ему замену (такой же точно контроллер с той же прошивкой), иначе данные из массива будет очень сложно выудить.
    3. Centos содержит придурочный NetworkManager (и systemd, но последнее еще можно пережить). А вот управление сетью через dbus - пережить сложно. Или выламывайте NetwokManager, или переходите на нормальный дистрибутив - SuSE
    4. Классика кластеростроения для виртуалок и миграции, вариант 1.

    Два сервера, на серверах массивы RAID10. Диски отдаются в мир через DRBD в режиме active-active.

    Поверх дисков работает распределенная кластерная система OCFS2.
    Управление кластером осуществляет pacemaker.

    RAID10 - это массив, сочетающий относительно высокую надежность (должно выйти из строя не менее половины всех дисков массива) и относительно высокую скорость работы (за счет разбивки файла по дискам)

    DRBD - это такой сетевой RAID1. Данные во время работы реплицируются между узлами, так что остановка одного узла из пары не приводит к остановке хранилища.

    OCFS2 - это кластерная ФC, которая позволяет куче машин видеть одно блочное устройство как свою локальную ФС. В ней работает отображение файлов в память и глобальные блокировки. И самое полезное для виртуалок - есть возможность создавать reflink. Reflink - это моментально создающаяся копия файла (образа диска виртуалки). Для новой копии, OCFS2 будет только хранить отличия от первоначального файла.

    pacemaker - это менеджер кластера+балансировщик нагрузки.

    Как это все поднять?

    1. Ставите на все машины OpenSuSE 42.1
    2. Собираете RAID10 через LVM (для этого есть GUI - Yast называется)
    3. В том же YAST поднимаете DRBD
    4. Ставите пакет ha-cluster-bootstrap
    5. На одном из узлов делаете ha-cluster-init и следуете его инструкциям
    6. На остальных узлах делаете ha-cluster-join

    Это в общих чертах, задавайте вопросы.
    Ответ написан
    2 комментария
  • Почему сетевые интерфейсы имеют разные имена?

    @Blackrime
    1. В GRUB добавь - net.ifnames=0
    2. Перезапиши ядро - sudo grub2-mkconfig -o /boot/grub2/grub.cfg
    3. Создаём правило раздачи имён. Правим /etc/udev/rules.d/70-persistent-net.rules
    Добавляем SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="08:00:27:a9:7a:e1", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
    Где ATTR{address}== MAC адрес интерфейса, NAME= Имя интерфейса
    4. Перезапускаем машину.
    Ответ написан
    1 комментарий
  • Почему сетевые интерфейсы имеют разные имена?

    alsopub
    @alsopub
    Ответ написан
    Комментировать
  • Какой выбрать мониторинг серверов?

    @Blackrime
    PRTG - бесплатно до 100 сенсоров. Этого должно хватить
    Ответ написан
    Комментировать
  • Каким образом измерять производительность системы?

    gbg
    @gbg Куратор тега Системное администрирование
    Любые ответы на любые вопросы
    Измерять в тиках процессора непрактично, тем более, что современные процессоры могут менять свою тактовую частоту по настроению.

    Способ измерения производительности зависит от задачи и желаемого результата.

    Один из наиболее универсальных подходов - измерение реального времени, за которое была выполнена определенная задача. Если задача выполняется слишком быстро - измерение времени многократного выполнения задачи.

    К этому добавляются графики загрузки процессора, сети, дисковой подсистемы, занятости оперативной и виртуальной памяти.

    Рассматривается вопрос наличия на графиках загрузки оборудования провалов и пиков, и плоских участков.

    Плоский участок под 100% говорит о недостатке данного ресурса - система "упирается" в него.

    Чередование провалов и пиков говорит о неоптимальном расходовании ресурса.

    Идеальная вычислительная задача должна давать полную загрузку всех вычислительных ресурсов - это означает, что в системе нет ни избытка, ни недостатка вычислительной мощности.
    Ответ написан
    5 комментариев
  • Как увидеть или разобраться в дереве репозиториев?

    CityCat4
    @CityCat4
    Внимание! Изменился адрес почты!
    В yum есть приоритеты, задаваемые каждой репе в ее конфиге. Если приоритеты не заданы - устанавливается наиболее новая из всех известных реп версия, но при этом запросто напороться на конфликт.
    Ответ написан
    Комментировать
  • Как увидеть или разобраться в дереве репозиториев?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Для apt есть приоритеты (/etc/apt/preferences.d/ сейчас), если не настроены, то устанавливается пакет с наибольшей версией.
    Ответ написан
    Комментировать
  • Как уйти с распутья технологий?

    @VZVZ
    Reverse-Engineer, Software Developer, Architect
    С таким подходом я далеко не уеду и я это понимаю.

    Неправильно понимаете.
    И вышеответившие тоже наверняка даже не пробовали быть универсалами, откуда им знать, что это невозможно?
    Это просто слухи, созданные людьми, которые лично себя нашли как узких спецов, и проецируют это на всех остальных, независимо от их склада ума, целей...

    А я реально пробовал. И нашел себя именно как универсал, "всего понемногу", но зато до глубины.
    И я тоже занимаю свою нишу.
    Есть задачи, где лучше узкий спец, чем я.
    А есть задачи, где лучше я, чем узкий спец.
    А есть задачи, где просто я. И точка.
    Ответ написан
    1 комментарий
  • Как уйти с распутья технологий?

    abyrkov
    @abyrkov
    JavaScripter
    Не буду долго писать, просто скажу, что это обыденная вещь, ведь., как было в Фаусте,
    кто ищет - вынужден блуждать
    . Просто вы однажды найдете свой язык.
    Лично меня до сих пор "качает" в сторону других технологий, например, я хочу сейчас выучить ассемблер (да, я псих :) ), хотя я уже нашел свой язык - JavaScript.
    Что касается советов - расширьте свой кругозор, если не уверены, что среди тех, что вы пробовали был ваш ЯП.
    Ответ написан
    2 комментария
  • Способы управления ключами ssh на Linux Servers?

    @viiy
    Linux сисадмин \ DevOps
    Просто и сурово, через git pull со стороны удаленного сервера :) Или rsync.
    В крон добавить задание раз в 5-10 минут подтягивать изменение с сервера конфигураций.
    Ответ написан
    Комментировать
  • Как понять файловые системы Linux?

    @abcd0x00
    Есть книжка по архитектуре UNIX, вот в ней можешь найти все принципы устройства.
    "Архитектура операционной системы UNIX." Бах Морис

    Можешь и какие-нибудь упрощённые книжки поискать для поверхностного изучения.


    1. Если директива и файл это просто inode с разным флагом внутри него, тогда откуда VFS или ядро знает что условно в папке /etc/ лежат всякие файлы(другие inodes) - это я пока не понял, не могу найти ни каких внутренних ссылок между собой файлов и директорий ?!

    Есть начальный inode, который указывает на список дальнейших inode, которые указывают на списки дальнейших inode.
    Директория является как бы файлом, в котором записаны пары (имя, inode) других директорий и файлов.

    Где вообще этот жуткий "/" хранится?

    В файловой системе (в заголовке) записан адрес на диске, где начинается самый первый inode. Потом он читается и из него получаются адреса последующих inode.
    А сам inode представляет из себя метаданные (данные о данных), где указаны всякие флажки и адрес на диске, где хранится уже содержимое файла.
    Ответ написан
    Комментировать
  • Два front-end nginx сервера, и виртуальный ip?

    Вам нужно либо Haproxy, либо DNS load balancing, либо Elastic IP.
    Эти инструменты решают разные задачи, поэтому выбирать нужно в зависимости от ваших реалий.
    Ответ написан
    Комментировать
  • Как управлять двумя master NGINX через командный апплет?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    nginx -s узнаёт PID-файл нужного процесса из дирекривы pid в конфиге. Если она не задана - будет использоваться nginx.pid в каталоге, заданное при сборке. Соответственно, надо указать правильный конфиг-файл:
    nginx -c /etc/nginx-first/nginx.conf -s reload

    https://www.nginx.com/resources/wiki/start/topics/...
    Ответ написан
    1 комментарий
  • Ansible изменить порт ssh, не изменяя файл инвентарный?

    selivanov_pavel
    @selivanov_pavel
    Linux admin
    Если порт ssh меняется на сервере - то он должен измениться в файле конфигурации, иначе этот файл станет неработоспособен. Можно, как предложил Konkase, править файл автоматически из того же ansible. Можно использовать dynamic inventiry и получать данные о серверах, группах и их параметрах, включая порт, откуда-нибудь из базы/api облачного провайдера и т. д. Но и в этом случае придётся менять это значение в этой базе.
    Ответ написан
    Комментировать
  • Ansible изменить порт ssh, не изменяя файл инвентарный?

    @Konkase
    - local_action: lineinfile dest={{ inventory_file }} regexp='^{{ inventory_hostname }}.*' line='{{ inventory_hostname }} ansible_ssh_port={{ new_port }}' state=present
    Ответ написан
    8 комментариев