Системный администратор Linux. Вопросы. Часть 3

Данный пост является продолжением серии постов про собеседования на должность системного администратора linux. По традиции комментарии к предыдущему посту (Системный администратор Linux. Вопросы. Часть 2) в большинстве своём скатились в срач. Адекватных были единицы, но ради них эти посты я и пишу.


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

Системный администратор Linux. Вопросы. Часть 3 Linux, Windows, Сисадмин, Отдел кадров, Пригорело, Собеседование, Длиннопост

Вводные завершены, продолжаем список вопросов и ответов.


В: Как отключить iptables на RHEL/Centos 7?

О: Начиная с 7й версии было изменено название демона с iptables на firewalld. Для отключения надо сделать systemctl stop firewalld, а так же отключить его запуск при загрузке systemctl disable firewalld.

В+: Всегда ли этого достаточно?

О+: Нет. Иногда используются надстройки и кастомные скрипты для восстановления правил iptables после перезагрузки. Надо просмотреть вывод systemctl status на предмет скриптов восстановления iptables, а так же post-up, pre-up, post-down, pre-down скрипты в /etc/sysconfig/network-scripts/.


В: Как выполнить некий скрипт на условной 1000 серверов?

О: Можно написать скрипт, который будет обходить сервера по списку и выполнять на них нужные действия.

В+: А есть какие то готовые решения?

О+: Да. Сейчас особенно популярен Ansible. Помимо него есть puppet, chef и т.д. Так же есть различные web-интерфейсы для данных систем. Такие как платный Ansible Tower или бесплатные AWX, Foreman.


В: Необходимо сделать резервное копирование неких данных. Что бы Вы использовали? Как сделать дёшево и как правильно?

О: Самое простое и дешевое решение это архивация неких данных и вынос на внешний носитель. Для работы с обычными файлами этот метод вполне рабочий. А вот для копирования баз данных, особенно больших и нагруженных, такой метод не подходит. Всё дело в том, что между началом копирования и завершением проходит достаточно много изменений в базе и на выходе получается не консистентный бекап. В таких случаях используется логирование действий для последующей «догонки» базы до актуального состояния. Например в psql для этого используется WAL, у oracle это FRA и т.д., но это уже в зоне ответственности администратора баз данных. Виртуальные машины можно бекапить снапшотами с ротацией и выносом их на другой носитель.

В+: А более «взрослые» решения?

О+: Для этого есть масса программно-аппаратных комплексов. Обычно это некий софт, под управлением которого работают дисковые массивы с дедупликацией, компрессией и репликацией. Для наиболее холодных или наиболее разностных данных используются ленточные библиотеки.


В: Есть безлимитный бюджет и задача построить максимально отказоустойчивую инфраструктуру. Ваши действия.

О: Основное правило - всех элементов по два. Если говорить про сервер, под систему должно быть два диска в зеркале (тут обычно спрашивается про то, какие raid бывают) или загрузка по SAN, две сетевые карты с LACP или иной active-active агрегацией, два независимых HBA адаптера в двух PCI слотах, каждый из которых подключается в отдельную SAN фабрику. Два блока питания на раздельных линиях питания. Разумеется таких серверов должно быть тоже два. Желательно в разных, георазнесённых, ЦОДах.

В+: А что касается остальной, не серверной части?

О+: Тот же принцип - всего по два. Главное, что бы приложение, которое работает в этой инфраструктуре, тоже умело резервироваться. Т.е. работало по принципу active-active или active-standby без участия человека. Так же, надо учитывать, что одно «плечо» должно тянуть суммарную нагрузку и при этом не упираться в свой предел. Например, штатный максимум по нагрузке на CPU одного плеча - 40%. При падении старого плеча будет 80%. И останется 20% на непредвиденные ситуации, которые часто в таких случаях появляются.


В: Что нужно для кластерной виртуализации?

О: Основное требование - наличие общего хранилища. Так же желательно иметь одинаковые настройки сети на всех нодах кластера. Это нужно для горячей миграции и для миграции машин при авариях.


В: Каким образом можно подключить диски к кластеру?

О: Общее хранилище может быть реализовано различными средствами - SAN, iSCSI, Ceph.

В+: Какой способ оптимальный из предложенных?

О+: Всё зависит от инфраструктуры, целей, бюджета и количества инженеров, выделенных на поддержку. Например Ceph можно собрать из весьма разносортных нод. При минимальном бюджете это хорошее решение. Вот только затраты человеческих ресурсов на него значительно завышены. SAN - дорогое по железу и относительно простое в поддержке решение. В любом случае придётся платить. Либо за железо, либо инженерам.


В: В чём преимущество Fibre Channel перед iSCSI?

О: В SAN сетях есть гарантированная доставка, меньше накладных ресурсов, сеть разрабатывалась как транспорт для дисковых носителей. В тоже время iSCSI это надстройка над ethernet, со всеми его недостатками.

В+: Допустим у нас есть два простых FC свича и два Ethernet свича. Каждую пару свичей мы соединим двумя линками. Что с ними произойдёт?

О+: FC свичи, при наличии лицензии, объединят два линка в один с удвоенной пропускной способностью. Ethernet свичи получат так «кольцо» и перестанут работать спустя какое-то время, которое зависит от объёма траффика в данном сегменте сети.


В: Есть некая виртуальная машина на VMWare. У машины 2 гигабайта памяти. В настройках машины стоят галочки «Можно добавлять память на горячую» и «Можно добавлять процессор на горячую». Внутри машины стоят все нужные гостевые дополнения. Система стоит x64. Можно ли сделать машине 6 гигабайт памяти на горячую?

О: Нет. На горячую можно будет подойти к отметке в 4 гигабайта, но пересечь её не получится.

В+: Почему? Система, ведь, поддерживает?

О+: Основной принцип памяти - отсутствие фрагментации. Т.е. вся память должна быть непрерывна. Если система стартует с объёмом памяти менее 4 гигабайт, часть старших адресов 32-битной шины резервируется под ввод-вывод. Соответственно расширять память можно до этих пределов. Если на старте памяти было 4 гигабайта и более, под ввод-вывод резервируется блок в верхней части уже существующего 64-битного адресного пространства.


В: Есть неограниченный бюджет и некая абстрактная платформа, которая умеет много памяти. Какой теоретический максимум памяти можно установить в такой сервер если система x86 и если система x64?

О: Предел x86 - 32 бита непрерывного адресного пространства, т.е. 4 гигабайта. Однако с использованием PAE объём памяти увеличивается до 64 гигабайт, но не более 4 гигабайт на процесс, т.к. адресная шина так и сталось 32 бита. Теоретический предел существующих x64 систем - 48 бит адресного пространства.

В+: Из чего получаются эти 48 бит?

О+: Размер страницы памяти 4 килобайта или 12 бит. Нумерация страниц - 36 бит. Итого получается 256 терабайт памяти.


На этом пока всё. Остался последний большой вопрос, объёмом на отдельный пост.

GNU/Linux

1K поста15.5K подписчиков

Добавить пост

Правила сообщества

Все дистрибутивы хороши.

Будьте людьми.

Вы смотрите срез комментариев. Показать все
14
Автор поста оценил этот комментарий

Максимально отказоустойчивая структура идёт не по два, а 2n+1

раскрыть ветку (25)
4
Автор поста оценил этот комментарий

Да, согласен. Однако 2n+1 это минимально возможная максимальная отказоустойчивость.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

На максимально возможную максимальную отказоустойчивость даже с безлимитным бюджетом все равно придется добавить 100-200 килопрезидентов. 😁

Автор поста оценил этот комментарий

это для кворума. Но если актив-пассив - можно обойтись и без него.

раскрыть ветку (21)
Автор поста оценил этот комментарий

А как пассив без кворума узнает, что он уже может быть активом?

раскрыть ветку (20)
Автор поста оценил этот комментарий

Брайансплитом. Падаем в него а дальше пусть один рулит 😆

раскрыть ветку (18)
Автор поста оценил этот комментарий

руками - это не отказоустойчивость, а восстановление после отказа.
Разные вещи.

раскрыть ветку (16)
1
Автор поста оценил этот комментарий

Наличие возможности восстановлениы после отказа это тоже вариант отказоустойчивости 😁

раскрыть ветку (15)
1
Автор поста оценил этот комментарий

нет, отказоустойчивость - это продолжение работы после отказа чего-либо.

Восстановление - это совсем другое.

Тогда и бекап можно считать отказоустойчивостью.

раскрыть ветку (14)
Автор поста оценил этот комментарий

Бэкап это один из элементов обеспечения отказоустойчивости.

https://ru.m.wikipedia.org/wiki/Отказоустойчивость

раскрыть ветку (13)
Автор поста оценил этот комментарий

а вы сами хоть прочитали текст по ссылке, что кинули?
Или чукча - не читатель, чукча - писатель?
Где там хоть слово про бекап?

раскрыть ветку (12)
Автор поста оценил этот комментарий

Да прочитал. И знаю основы, которые были гораздо раньше бредней про бэкапы. Замена колеса в авто это тоже отказоустойчивость. То что вы очень узко смотрите - это только ваша проблема.

раскрыть ветку (11)
Автор поста оценил этот комментарий

1. Если прочитали, зачем запостили ссылку, где нет ни слова про ваше утверждение?
2. Вы не знаете основы. Вы заблуждаетесь. Вы путаете базовые понятия.

3. А замена колеса тут аналогия к чему? К бекапу? Вы вообще знаете что такое бекап?

Подмена понятий и не понимание, что для чего нужно, это не широкое мышление. Это некомпетентность.

раскрыть ветку (10)
Автор поста оценил этот комментарий

Один=одмин.

Автор поста оценил этот комментарий

никак, согласен. Актив-пассив - это меньшая доступность чем в случае с кворумом. Хотя, в случае с кворумом все равно присутствует единая точка отказа - интерконнект (привет, сплитбрйн). И если это интернет - гарантировать наличие двух физически независимых путей в общем случае довольно трудно.

Автор поста оценил этот комментарий
Вероятно в данном случае, упрощённо, можно понятие "отказоустойчивости" подменить даже на "высокую доступность", в рамках собеседований, думаю, не столь критично.
Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку