add: сборка ядра Linux для opi5plus (fin_2)

This commit is contained in:
Sergei Erjemin 2025-03-25 11:19:39 +03:00
parent a49d432419
commit 81fbf2ffa6
2 changed files with 37 additions and 27 deletions

View File

@ -488,6 +488,10 @@ rpi3b Ready <none> 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).
### Добавление узлов во "внешнем" интернете
В моем проекте (специализированном поисковике) будет нужно парсить и интернет сайты, включая заблокированные сайты.

View File

@ -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
```