htop і багато іншого на пальцях



Протягом довгого часу я не до кінця розумів htop. Я думав, що середня завантаженість [load average] в 1.0 означає, що процесор завантажений на 50%, але це не зовсім так. Та й потім, чому саме 1.0?

Потім я вирішив у всьому розібратися і написати про це. Кажуть, що кращий спосіб навчитися новому — спробувати це пояснити.

Читати далі →

Grep все, що можна

Про
grep
знають якщо не всі, то багато читачів Хабра, проте його численних родичів знають небагато.

Давайте дізнаємося, як можна грепать все, що таїть в собі хоч крихту тексту.
Читати далі →

Управління контейнерами з runC

runc

Продовжуємо цикл статей про контейнеризації. Сьогодні ми поговоримо про runC — інструмент для запуску контейнерів, що розробляється в рамках проекту Open Containers. Мета цього проекту полягає в розробці єдиного стандарту в області контейнерних технологій. Проект підтримують такі компанії, як Facebook, Google, Microsoft, Oracle, EMC, Docker. Влітку 2015 року був опублікований чорновий варіант специфікації під назвою Open Container Initiative (OCI).

Читати далі →

FreeNAS 10 — нове обличчя старого сховища

Доброго часу доби, Хабр! Трохи більше року тому була анонсована ALPHA версія популярного Open Source операційної системи для зберігання даних FreeNAS.

На сьогоднішній день вищезгаданий продукт колективної праці доріс аж до BETA2 вже неспішно-стрімко рухається до свого релізу. Якщо вам цікаво, що ж там «вигадали» розробники — ласкаво просимо під кат.



Читати далі →

Піднімаємо власний репозиторій пакетів для Ubuntu (Debian)

В житті будь-якої розвивається проекту рано чи пізно (і краще рано) настає момент, коли експлуатація багатозначно дивиться на розробку і пропонує оформити стосунки. Подальший розвиток подій, як водиться, залежить від обох сторін. Про погане сьогодні не будемо, розглянемо відразу випадок, коли розробка готова використовувати нехитрий інструментарій складання пакетів, підготовлений для неї експлуатацією (шаблони debian/rules і debian/control, команди fakeroot, debuild, і так далі). Залишилася сама малість: підняти для зібраних пакетів власний репозиторій.
Оскільки вивчення інтернетів раптово показали, що тема, хоч і висвітлювалася, і навіть на Хабре, навряд чи може вважатися виразно розкритою, спробуємо заповнити цю прогалину.
Читати далі →

Linux WiFi з командного рядка з wpa_supplicant

У цій статті я розповім, як можна налаштувати WiFi за допомогою wpa_supplicant, без всяких Xorg/X11 утиліт. Це необхідно для того, щоб базові служби ОС справно працювали з мінімальним набором технічних засобів віддаленого доступу. Програма буде виконуватися як служба, налаштування зроблені правкою конфіг файлів.
По-швидкому, встановити з'єднання з відкритою точкою доступу можна таким чином.
[root@home ~]$ wpa_cli
> add_network
> set_network 0 ssid "MYSSID"
> set_network 0 key_mgmt NONE
> enable_network 0

Якщо ж треба всерйоз і надовго, то прошу всередину.
Читати далі →

Головоломки TCP


Кажуть, що не можна повністю зрозуміти систему, поки не зрозумієш її збої. Ще будучи студентом я заради забави написав реалізацію TCP, а потім кілька років працював в IT, але досі продовжую глибше і глибше вивчати роботу TCP — і його помилки. Найдивніше, що деякі з цих помилок проявляються в базових речах. І вони неочевидні. У цій статті я подарую їх як головоломки, в стилі Car Talk або старих головоломок Java. Як і будь-які інші хороші головоломки, їх дуже просто відтворити, але рішення зазвичай дивують. І замість того, щоб зосереджувати нашу увагу на загадкових подробиці, ці головоломки допомагають вивчити деякі глибинні принципи роботи TCP.

Читати далі →

Banana Pi — сервер резервного копіювання

Завдання
Є три хоста. Два в домашній мережі та один віддалений. Для резервного копіювання потрібно незалежний бекап-сервер, який можна підключити до прямо до домашньої мережі або розмістити віддалено. Головне завдання: робити регулярні бекапи як домашніх так і віддалених систем. Сервер повинен бути максимально економним. Всі хости і бекап-сервер використовують операційну систему FreeBSD.

Найлегше в якості сервера пристосувати старий комп'ютер. Однак він повинен чергувати цілодобово і тому буде жерти багато електроенергії. Тому я я звернув свій погляд на single board computers на процесорі ARM. Цей процесор підтримується операційною системою FreeBSD.

image
Оптимальний вибір Banana Pi М1. Відповідний процесор і пам'ять. Можна підключити SATA диск. Параметри цілком задовільні для бекап-сервера, якому особливо нікуди поспішати.

В якості програмного рішення обраний BackupPC. З ним все добре за винятком однієї речі: архіви не шифруються. Для вивантаження копії архіву в хмару (а тим більше в некошерний mail.ru потрібно додаткове шифрування. Але це окреме питання не по цій темі. Для доступу до web-інтерфейсу BackupPC потрібно веб-сервер. У класичній установці для BackupPC пропонується Apache. Але рука не піднімається на маленький Banana Pi збудувати такого монстра. Тому буде nginx.

Читати далі →

Моніторинг та налаштування мережевого стека Linux: отримання даних



У цій статті ми розглянемо, як здійснюється прийом пакетів на комп'ютерах під управлінням ядра Linux, а також розберемо питання моніторингу і налаштування кожного компонента мережевого стека по мірі руху пакетів з мережі в додатку користувача простору. Тут ви знайдете багато вихідного коду, тому що без глибокого розуміння процесів ви не зможете налаштувати і відслідковувати мережевий стек Linux.

Також рекомендуємо ознайомитися з ілюстрованим керівництвом на ту ж тему, там є пояснювальні схеми та додаткова інформація.

Зміст1. Загальний рада з моніторингу та налаштування мережевого стека Linux
2. Огляд проблематики
3. Докладний розбір
3.1. Драйвер мережного пристрою
3.2. SoftIRQ
3.3. Підсистема мережного пристрою Linux
3.4. Механізм управління прийнятими пакетами (Receive Packet Steering (RPS))
3.5. Механізм управління прийнятими потоками (Receive Flow Steering (RFS))
3.6. Апаратно прискорений управління прийнятими потоками (Accelerated Receive Flow Steering (aRFS))
3.7. Підвищення (moving up) мережевого стека з допомогою netif_receive_skb
3.8. netif_receive_skb
3.9. Реєстрація рівня протоколу
3.10. Додаткова інформація
4. Висновок

Читати далі →

П'ять інструментів systemd, які варто почати використовувати прямо зараз


Ця стаття покликана познайомити читача з перебувають в арсеналі systemd набором інструментів.
Коли нарешті вдається змиритися з відходом systemd від тих принципів, що лежали в основі старозавітної System V з її простими текстовими файлами і засиллям скриптів, починаєш бачити незаперечні переваги нової системи ініціалізації і поставляються з нею інструментів. У цій статті ми поговоримо про чотири з них, а також згадаємо ще один, який ви напевно вже знаєте, але навряд чи використовували таким способом.
Читати далі →