diff --git a/raspberry-and-orange-pi/k3s.md b/raspberry-and-orange-pi/k3s.md index a5bbb2d..b343944 100644 --- a/raspberry-and-orange-pi/k3s.md +++ b/raspberry-and-orange-pi/k3s.md @@ -488,6 +488,10 @@ rpi3b Ready 27s v1.31.6+k3s1 официальной поддержки Kubernetes/k3s для узлов на macOS (можно использовать обходные пути с использованием виртуальныех машин). +> **Заметрка:** +> +> Если для вашего Kubernetes-кластера требуется блочное хранилище `longhorn` (для обеспечение репликации файлов между узлами кластера и высокой доступности данных), то понадобится модуль `iSCSI` (_Internet Small Computer System Interface_) на уровне системы. В составе Ubuntu 22.04 для Orange Pi 5 этого модуля нет. Потребуется [компиляция ядра](opi5plus-rebuilding-linux-kernel-for-iscsi.md). + ### Добавление узлов во "внешнем" интернете В моем проекте (специализированном поисковике) будет нужно парсить и интернет сайты, включая заблокированные сайты. diff --git a/raspberry-and-orange-pi/opi5plus-rebuilding-linux-kernel-for-iscsi.md b/raspberry-and-orange-pi/opi5plus-rebuilding-linux-kernel-for-iscsi.md index a1671f9..995e1c9 100644 --- a/raspberry-and-orange-pi/opi5plus-rebuilding-linux-kernel-for-iscsi.md +++ b/raspberry-and-orange-pi/opi5plus-rebuilding-linux-kernel-for-iscsi.md @@ -2,28 +2,30 @@ Для моего проекта (k3s на Orange Pi 5 Plus) потребовалась поддержка система управления блочным хранилищем 'longhorn' (longhorn.io). _Longhorn_ позволяет создавать надёжные тома для контейнеров, автоматически реплицируя их между узлами -и обеспечения высокую доступности приложений: если один узел выходит из строя, данные остаются доступны на репликах -на других узлах. +и обеспечения высокую доступности приложений (если один узел выходит из строя, данные остаются доступны на репликах +на других узлах). -Для _longhorn_ нужен `iSCSI` (**Internet Small Computer System Interface**) — сетевой протокол, который позволяет -подключать удалённые диски так, будто они подключены физически. Longhorn через iSCSI обеспечивает передачу данных между -узлами через сеть. +Для _longhorn_ нужен `iSCSI` (**Internet Small Computer System Interface**) — сетевой протокол, который по TCP/IP +подсоединяет удалённые диски так, будто они подключены физически. Longhorn через iSCSI обеспечивает передачу +данных между узлами по сети. -В ядре Linux поддержка _iSCSI_ реализована через модули, такие как 'iscsi_tcp' и 'scsi_transport_iscsi'. Однако, -в большинстве дистрибутивов для одноплатных компьютеров, включая Orange Pi 5 Plus, эти модули отключены. Это делают +В ядре Linux поддержка _iSCSI_ реализована через модули, такие как `iscsi_tcp` и `scsi_transport_iscsi`. Однако, +в большинстве дистрибутивов для одноплатных компьютеров, включая и Orange Pi 5 Plus, эти модули отключены. Это делают для экономии ресурсов, да и в целом, это нетипичный сценарий использования Orange Pi. В версии Ubuntu 22.04 -для Orange Pi 5 Plus (в ядре от Xunlong), поддержка iSCSI тоже отключена, и это делает невозможным запуск Longhorn. +для Orange Pi 5 Plus (в ядре от Xunlong), поддержка iSCSI тоже отключена, и это делает невозможным запуск Longhorn +из коробки. -**А значит нужна пересборка ядра (компиляция)** +**А значит нужно компиляция ядра (сбока)** -Таким образом, мы вручную включим поддержку iSCSI (модули iscsi_tcp и scsi_transport_iscsi), и в целом можем настроить -ядро под свои задачи. Однако компиляция и замена требует осторожности — ошибка в процессе может привести к тому, что -система не загрузится (но мы сделаем резервную копию текущего ядра, загрузчика, чтобы можно было восстановить систему). +Мы вручную включим поддержку _iSCSI_ (модули `iscsi_tcp` и `scsi_transport_iscsi`), и cможем настроить +ядро под свои задачи. Однако компиляция и его замена требует осторожности и внимательности, ошибка в процессе может +привести к тому, что система не загрузится (но мы сделаем резервную копию текущего ядра, загрузчика, чтобы можно +было восстановить систему). -Обновления системы (например, через `apt`) с новым ядром будет работать как обычно: пакеты, утилиты и приложения -обновляются без проблем. Однако пересобранное ядро больше не будет автоматически обновляться через стандартные средства -дистрибутива. Если выйдет новая версия ядра от Xunlong, придётся вручную повторить процесс компиляции. К счастью, -Xunlong обновляет ядро не часто. +Обновления системы (например, через `apt`) с новым ядром будет проходить, как обычно: пакеты, утилиты и приложения +обновятся без проблем. Однако пересобранное ядро больше не будет автоматически обновляться через стандартные средства +дистрибутива. Если выйдет новая версия ядра, то придётся вручную повторить процесс компиляции. К счастью, +поставщик (это Xunlong) обновляет ядро не часто. | ✎ Заметка | |-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| @@ -36,10 +38,9 @@ Xunlong обновляет ядро не часто. * Скачать исходники. * Настроить конфиг для включения модулей iSCSI (и мониторинга NVMe). * Скомпилировать ядро и модули. -* Устанавливать новое ядро. -* Перезагрузить в новое ядро. -* Проверить. - +* Установить новое ядро. +* Перезагрузиться в новое ядро. +* Проверка. ## Резервное копирование текущего ядра и /boot @@ -60,9 +61,9 @@ ls -al /tmp/boot-backup.tar.gz Теперь нам нужно скопировать его на какой-нибудь внешний хост (или носитель, но я буду копировать на хост другого компьютера). Если что-то пойдёт не так (например, после обновления ядра система не загрузится) можно будет восстановить -файлы из этого архива. Мой текущий хост, на котором я буду компилировать ядро -- `opi5plus-3` (замени на свой хост), а -имя пользователя `opi` (замени на свой). На рабочем компьютере у меня есть папка `~/backup/` (`mkdir -p ~/backup`), -куда я и буду копировать архив: +файлы из этого архива. Мой Orange Pi 5 Plus, на котором я буду компилировать ядро имеет хост -- `opi5plus-3` (замени +на свой хост), а имя пользователя от которого я работаю -- `opi` (замени на свой). На рабочем компьютере, с которого +я захожу по SSH на Orange, у меня есть папка `~/backup/` (`mkdir -p ~/backup`). Скачиваю в неё архив: ```bash scp opi@opi5plus-3.local:/tmp/boot-backup.tar.gz ~/backup/opi5plus-3-boot-backup.tar.gz ``` @@ -386,8 +387,13 @@ TriggeredBy: ● iscsid.socket Как видим, `active (running)`, значит iSCSI работает. -| ✎ Заметка | -|----------------------------------------------------------------------------------------------------------| -| Если вы включили мониторинг NVMe, то проверим и его. Установим nvme-cli: `sudo apt install nvme-cli` и проверим состояние нашего некопителя `sudo nvme smart-log /dev/nvme0n1`. | +| ✎ Заметка | +|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| Если вы включили мониторинг NVMe, то проверим и его. Установим nvme-cli: `sudo apt install nvme-cli` и проверим состояние нашего накопителя `sudo nvme smart-log /dev/nvme0n1`. | -ВСË! +**ВСË!** + +А, да, не забудьте удалить репозиторий с исходниками ядра, если он вам больше не нужен: +```bash +rm -rf ~/linux-orangepi +``` \ No newline at end of file