Библиотека девопса | DevOps, SRE, Sysadmin
10.2K subscribers
1.53K photos
74 videos
4 files
2.76K links
Все самое полезное для девопсера в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/25874ec4

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/6798b4e4509aba565
Download Telegram
#вопросы_с_собеседования

Где хранится информация об именах файлов, директорий?

Inodes не содержат имён файлов, только другие метаданные файла.
Каталоги Unix представляют собой списки ассоциативных структур, каждая из которых содержит одно имя файла и один номер индекса.
Драйвер файловой системы должен найти каталог, ищущий определенное имя файла, а затем преобразовать имя файла в правильный соответствующий номер индекса.
Таким образом имя файла/директории хранится в информационной структуре каталогов.
👍5🔥3
#вопросы_с_собеседования

Что такое major and minor numbers блочных устройств, чему они соответствуют?

Согласно выводу

```crw-rw-rw- 1 root root 1, 3 Feb 23 1999 null
crw------- 1 root root 10, 1 Feb 23 1999 psaux
crw------- 1 rubini tty 4, 1 Aug 16 22:22 tty1
crw-rw-rw- 1 root dialout 4, 64 Jun 30 11:19 ttyS0
crw-rw-rw- 1 root dialout 4, 65 Aug 16 00:00 ttyS1
crw------- 1 root sys 7, 1 Feb 23 1999 vcs1
crw------- 1 root sys 7, 129 Feb 23 1999 vcsa1
crw-rw-rw- 1 root root 1, 5 Feb 23 1999 zero```

Цифры 1, 10, 4 и 7 — старшие, мажорные номера.

Цифры 1, 3, 5, 64, 65 и 129 — минорные номера

Старший номер идентифицирует драйвер, который связан с устройством.

null и zero управляются драйвером 1.

tty1, ttyS0, ttyS1 — управляются драйвером четыре. Это виртуальные консоли и терминалы.

Как правило один старший номер — один драйвер

Младший же номер используется ядром что бы определить о каком устройстве идет речь. И можно получить ссылку на устройство через ядро. Само ядро ничего про них не знает, знают только то, что здесь ссылаются на устройства, которыми драйвер управляют.
🤩164👾3🥰2
#вопросы_с_собеседования

Каким образом осуществляется монтирование ФС? Как можно посмотреть список примонтированных ФС? (2 — 3 способа)

mkfs -t ext3 /dev/hda8

mount — показать все файловые системы

mount -t ext4 — покажет ext4 файловые системы

Если нужно примонтировать, например, usb

Создаем файлик и монтируем

sudo mkdir -p /media/usb
sudo mount /dev/sdd1 /media/usb
11👍6🔥1
#вопросы_с_собеседования

Как определить, на каком физическом жёстком диске находится раздел с файловой системой? Как можно идентифицировать этот носитель без выключения сервера?

Посмотреть название блочного устройства нужного можно например с помощью команды:
mount | grep " $(stat -c%m /home) " | awk '{print $1}'

А дальше на основе полученной информации можно выудить фирму, серийный номер и размер диска.
smartctl -a /dev/sda | grep -e «Serial Number» -e «Device Model» -e «Model Family» -e «User Capacity»
👍111🔥1
#вопросы_с_собеседования

Как узнать, какими процессами используется раздел?

lsof | grep /media/whatever
fuser -mv /path/to/mountpoint
👍10👏2
#вопросы_с_собеседования

Что такое RAID? Какие основные типы RAID существуют?

В работе с дисками есть две проблемы:

✏️ Низкая скорость чтения\записи
✏️ Выход дисков из строя и потеря данных

И это всё решается с помощью технологии RAID — избыточного массива независимых дисков.

Существуют следующие уровни спецификации RAID: 1, 2, 3, 4, 5, 6, 0. Кроме того, существуют комбинации: 01, 10, 50, 05, 60, 06. Существуют аппаратные и программные RAID-массивы.

Программные массивы создаются уже после установки ОС средствами программных продуктов и утилит, что и является главным недостатком таких дисковых массивов.
Аппаратные RAID’ы создают дисковый массив до установки ОС и от неё не зависят.
RAID 0 — чередование
RAID 1 — зеркалирование
RAID 5 — чередование с четностью
RAID 6 — чередование с двойной четностью
RAID 10 — совмещение зеркалирования и чередования
🔥9👍3🌚1
#вопросы_с_собеседования

Какие основные типы RAID существуют, чем они отличаются?

RAID 0 — Чередование

В системе RAID 0 данные разделяются на блоки, которые записываются на все диски в массиве. При одновременном использовании нескольких дисков (как минимум 2) это обеспечивает превосходную производительность ввода-вывода.

RAID 1 — Зеркальное отображение

Данные хранятся дважды, записывая их как на основной диск (или набор дисков), так и на зеркальный диск (или набор дисков). В случае сбоя диска контроллер использует основной диск или зеркальный диск для восстановления данных и продолжает работу.

RAID уровень 5

RAID 5 является наиболее распространенным безопасным уровнем RAID. Требуется как минимум 3 диска, но может работать до 16. Блоки данных распределяются по дискам, и на одном диске записывается контрольная сумма четности всех данных блока

Уровень RAID 6 — Чередование с двойной четностью

RAID 6 похож на RAID 5, но данные о четности записываются на два диска. Это означает, что для него требуется как минимум 4 диска и он может выдержать 2 диска, умирающих одновременно.

RAID уровень 10 — объединение RAID 1 и RAID 0

Можно объединить преимущества (и недостатки) RAID 0 и RAID 1 в одной системе. Это вложенная или гибридная конфигурация RAID.
13👍4🥰3
#вопросы_с_собеседования

Что такое loop devices? Как их можно использовать?

В Unix-подобных операционных системах устройство цикла , vnd (диск vnode) или lofi (интерфейс файла цикла) является псевдоустройством, которое делает компьютерный файл доступным как блочное устройство.

Перед использованием петлевое устройство должно быть подключено к существующему файлу в файловой системе. Ассоциация предоставляет пользователю интерфейс прикладного программирования (API), который позволяет использовать файл вместо блочного специального файла (см. Файловую систему устройства). Таким образом, если файл содержит всю файловую систему, файл может быть смонтирован, как если бы это было дисковое устройство.

Файлы этого типа часто используются для CD образов ISO и дискет образов. Монтирование файла, содержащего файловую систему, с помощью такого монтирования цикла делает файлы в этой файловой системе доступными. Они появляются в каталоге точки монтирования.

Петлевое подключение имеет несколько применений. Это удобный метод автономного управления и редактирования образов файловой системы, которые в дальнейшем используются для нормальной работы системы. Сюда входят образы CD или DVD или системы установки. Его можно использовать для установки операционной системы в файловую систему без повторного разбиения диска. Он также обеспечивает постоянное разделение данных, например, при имитации съемных носителей на более быстром и удобном жестком диске или инкапсуляции зашифрованной файловой системы.
🔥6🥰1🎉1
#вопросы_с_собеседования

df сообщает о наличии 20 Гб занятого пространства, подсчёт занятого файлами места при помощи du даёт результат в 20 Мб. При каких обстоятельствах может возникнуть описанная ситуация?

Когда файл удален т. к. файловый дескриптор «держит» его.

Ищем файл через:

lsof -a +L1 | grep var | grep httpd

При удалении файла, который в этот момент был «занят» процессом — его имя удаляется, но inode — остаётся в файловой системе до тех пор, пока не завершится процесс, который «держит» этот файл.

Соответственно, что бы «освободить» уже удалённые файлы — необходимо перезапустить процесс, который этот файл держит.
22👍8🥰1
#вопросы_с_собеседования

В чем разница между docker stop и docker pause?

В том, что они разные сигналы посылают
docker pause — SIGSTOP(19), что приостанавливает процессы в контейнере
docker stop — sigterm и sigkill использует к главному процессу контейнера
👍42
#вопросы_с_собеседования

Если доступной (available) памяти 2919, почему свободной (free) памяти 843?

Total. Эта цифра представляет всю существующую память.
Used вычисление общего значения оперативной памяти системы за вычетом выделенной свободной, разделяемой, буферной и кэш-памяти.
Free — свободная память в системе.
Shared — память, используемая (преимущественно) в tmpfs
Buffer и Cache идентифицируют память, используемую для нужд ядра / ОС. Буфер и кеш складываются вместе, а сумма указывается в разделе buff/cache.
Available — примерное количество оперативной памяти, доступное для запуска новых приложений без использования ими раздела подкачки. В отличие от поля free, это поле принимает в расчёт cache и также то, что не вся пригодная для повторного использования память будет возвращена после освобождения.
❤‍🔥26👍4🥰21
#вопросы_с_собеседования

Как работают сертификаты? Как подтверждается соединение?

Браузер или сервер (клиент) пытается подключиться к веб-сайту (веб-серверу), защищенному с помощью SSL.
Клиент запрашивает идентификацию у веб-сервера.
В ответ веб-сервер отправляет копию своего SSL-сертификата и публичный ключ.
Клиент проверяет, является ли этот SSL-сертификат доверенным. В него зашиты сервера с помощью которых нужно производить проверку, с помощью центров сертификации. Если это так, он сообщает об этом веб-серверу. Генерирует сеансовый ключ, шифрует публичным ключом и отправляет на сервер.
Сервер расшифровывает сообщение и сохраняет сеансовый ключ. Затем веб-сервер возвращает подтверждение с цифровой подписью и начинает сеанс, зашифрованный с использованием SSL.
Зашифрованные данные используются совместно браузером или сервером и веб-сервером.

Этот процесс иногда называют подтверждением SSL-соединения. Хотя по описанию этот процесс выглядит длительным, в реальности он занимает миллисекунды.
18👍13👏2
#вопросы_с_собеседования

Что такое контейнеризация? Чем она отличается от виртуализации?

При виртуализации машины создаются с помощью гипервизора и все аппаратные составляющие создаются через него. Затем на него накатываются операционные системы. Соответственно, ресурсы машины будут уходить на поддержание работы запущенной операционной системы.

При контейнеризации аппаратные ресурсы выделяются с помощью ядра операционной системы, и изолируются пространством имен. Следовательно, они потребляют меньше ресурсов, и быстрее пересоздаются.
❤‍🔥33🔥3👍2
#вопросы_с_собеседования

Что такое docker и какие инструменты linux лежат в основе? Для чего он используется?


Docker базируется на технологиях:

🔸 namespaces — обеспечивает изоляцию (например, можно айдишники процессов разместить в разных контейнерах)
🔸 cgroups — позволяет управлять группой процессов, и управлять их ресурсами
🔸 capabilities
— позволяет дать некоторые рут привелегии процессам или исполняемым файлам. Например, изменить UID процесса на 0, или дать возможность монтировать файловые системы.
🔸 overlay namespaces
— (overlayFS, overlay2-драйвер) - файловая система, которая умеет работать "слоями". Не сохранять каждый раз новые файлы, а наслаивать один слой на другой, тем самым экономя место на диске и время создания контейнера.

А вот докер — это уже штука, которая всеми этими технологиями рулит, удобным для нас образом.

Компоненты докера:

🔻 Docker Daemon — тот самый Container Engine; запускает контейнеры.
🔻 Docker CLI — утилита по управлению Docker.
🔻 Dockerfile — инструкция по тому, как собирать образ.
🔻 Image — образ, из которого раскатывается контейнер.
🔻 Container
🔻 Docker registry — хранилище образов.

На Docker_host работает Docker daemon и запускает контейнеры.
Client — передаёт команды: собери образ, скачай образ, запусти контейнер. Docker daemon ходит в registry и выполняет их. Docker-клиент может обращаться и локально (к юникс-сокету), и по TCP с удалённого хоста.

Docker daemon (демон) — это серверная часть, работающая на хост-машине: скачивает образы и запускает из них контейнеры, создаёт сеть между контейнерами, собирает логи. Когда мы говорим «создай образ», этим тоже занимается демон.

Docker CLI — клиентская часть Docker, консольная утилита для работы с демоном. Может работать не только локально, но и по сети.
🔥42👍31
#вопросы_с_собеседования

Что за none образы можно увидеть в docker images?


Каждый образ в докере состоит из слоев, и имеет дочерние связи с другими слоями. По умолчанию они лежат в /var/lib/docker/graph. И когда мы закачиваем новую версию образа, он подгружает слой раз за разом. И получается что none это лишь один из слоев. Этот образ называется промежуточным. Их можно увидеть с помощью docker images -a Также есть обособленные образы none:none. Например, когда мы собираем примерно такой же образ, но, например, с иной версией ОС. В этом случае будет создан именно такой образ. Поскольку мы пересобрали образ с помощью докерфайла, а старая система стала обособленной.

Можно почистить так:

docker rmi $(docker images -f "dangling=true" -q)
5🔥5
#вопросы_с_собеседования

Почему latency до 8.8.8.8 всегда низкий?

8.8.8.8 это не один хост. Это anycast адрес, который перенаправляет на ближайший хост, которые по всему миру.
👍12🥰4