add: сборка ядра Linux для opi5plus (fin_2)
This commit is contained in:
parent
a49d432419
commit
81fbf2ffa6
@ -488,6 +488,10 @@ rpi3b Ready <none> 27s v1.31.6+k3s1
|
|||||||
официальной поддержки Kubernetes/k3s для узлов на macOS (можно использовать обходные пути с использованием виртуальныех
|
официальной поддержки Kubernetes/k3s для узлов на macOS (можно использовать обходные пути с использованием виртуальныех
|
||||||
машин).
|
машин).
|
||||||
|
|
||||||
|
> **Заметрка:**
|
||||||
|
>
|
||||||
|
> Если для вашего Kubernetes-кластера требуется блочное хранилище `longhorn` (для обеспечение репликации файлов между узлами кластера и высокой доступности данных), то понадобится модуль `iSCSI` (_Internet Small Computer System Interface_) на уровне системы. В составе Ubuntu 22.04 для Orange Pi 5 этого модуля нет. Потребуется [компиляция ядра](opi5plus-rebuilding-linux-kernel-for-iscsi.md).
|
||||||
|
|
||||||
### Добавление узлов во "внешнем" интернете
|
### Добавление узлов во "внешнем" интернете
|
||||||
|
|
||||||
В моем проекте (специализированном поисковике) будет нужно парсить и интернет сайты, включая заблокированные сайты.
|
В моем проекте (специализированном поисковике) будет нужно парсить и интернет сайты, включая заблокированные сайты.
|
||||||
|
@ -2,28 +2,30 @@
|
|||||||
|
|
||||||
Для моего проекта (k3s на Orange Pi 5 Plus) потребовалась поддержка система управления блочным хранилищем 'longhorn'
|
Для моего проекта (k3s на Orange Pi 5 Plus) потребовалась поддержка система управления блочным хранилищем 'longhorn'
|
||||||
(longhorn.io). _Longhorn_ позволяет создавать надёжные тома для контейнеров, автоматически реплицируя их между узлами
|
(longhorn.io). _Longhorn_ позволяет создавать надёжные тома для контейнеров, автоматически реплицируя их между узлами
|
||||||
и обеспечения высокую доступности приложений: если один узел выходит из строя, данные остаются доступны на репликах
|
и обеспечения высокую доступности приложений (если один узел выходит из строя, данные остаются доступны на репликах
|
||||||
на других узлах.
|
на других узлах).
|
||||||
|
|
||||||
Для _longhorn_ нужен `iSCSI` (**Internet Small Computer System Interface**) — сетевой протокол, который позволяет
|
Для _longhorn_ нужен `iSCSI` (**Internet Small Computer System Interface**) — сетевой протокол, который по TCP/IP
|
||||||
подключать удалённые диски так, будто они подключены физически. Longhorn через iSCSI обеспечивает передачу данных между
|
подсоединяет удалённые диски так, будто они подключены физически. Longhorn через iSCSI обеспечивает передачу
|
||||||
узлами через сеть.
|
данных между узлами по сети.
|
||||||
|
|
||||||
В ядре Linux поддержка _iSCSI_ реализована через модули, такие как 'iscsi_tcp' и 'scsi_transport_iscsi'. Однако,
|
В ядре Linux поддержка _iSCSI_ реализована через модули, такие как `iscsi_tcp` и `scsi_transport_iscsi`. Однако,
|
||||||
в большинстве дистрибутивов для одноплатных компьютеров, включая Orange Pi 5 Plus, эти модули отключены. Это делают
|
в большинстве дистрибутивов для одноплатных компьютеров, включая и Orange Pi 5 Plus, эти модули отключены. Это делают
|
||||||
для экономии ресурсов, да и в целом, это нетипичный сценарий использования Orange Pi. В версии Ubuntu 22.04
|
для экономии ресурсов, да и в целом, это нетипичный сценарий использования 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`) с новым ядром будет работать как обычно: пакеты, утилиты и приложения
|
Обновления системы (например, через `apt`) с новым ядром будет проходить, как обычно: пакеты, утилиты и приложения
|
||||||
обновляются без проблем. Однако пересобранное ядро больше не будет автоматически обновляться через стандартные средства
|
обновятся без проблем. Однако пересобранное ядро больше не будет автоматически обновляться через стандартные средства
|
||||||
дистрибутива. Если выйдет новая версия ядра от Xunlong, придётся вручную повторить процесс компиляции. К счастью,
|
дистрибутива. Если выйдет новая версия ядра, то придётся вручную повторить процесс компиляции. К счастью,
|
||||||
Xunlong обновляет ядро не часто.
|
поставщик (это Xunlong) обновляет ядро не часто.
|
||||||
|
|
||||||
| ✎ Заметка |
|
| ✎ Заметка |
|
||||||
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
|
||||||
@ -36,10 +38,9 @@ Xunlong обновляет ядро не часто.
|
|||||||
* Скачать исходники.
|
* Скачать исходники.
|
||||||
* Настроить конфиг для включения модулей iSCSI (и мониторинга NVMe).
|
* Настроить конфиг для включения модулей iSCSI (и мониторинга NVMe).
|
||||||
* Скомпилировать ядро и модули.
|
* Скомпилировать ядро и модули.
|
||||||
* Устанавливать новое ядро.
|
* Установить новое ядро.
|
||||||
* Перезагрузить в новое ядро.
|
* Перезагрузиться в новое ядро.
|
||||||
* Проверить.
|
* Проверка.
|
||||||
|
|
||||||
|
|
||||||
## Резервное копирование текущего ядра и /boot
|
## Резервное копирование текущего ядра и /boot
|
||||||
|
|
||||||
@ -60,9 +61,9 @@ ls -al /tmp/boot-backup.tar.gz
|
|||||||
|
|
||||||
Теперь нам нужно скопировать его на какой-нибудь внешний хост (или носитель, но я буду копировать на хост другого
|
Теперь нам нужно скопировать его на какой-нибудь внешний хост (или носитель, но я буду копировать на хост другого
|
||||||
компьютера). Если что-то пойдёт не так (например, после обновления ядра система не загрузится) можно будет восстановить
|
компьютера). Если что-то пойдёт не так (например, после обновления ядра система не загрузится) можно будет восстановить
|
||||||
файлы из этого архива. Мой текущий хост, на котором я буду компилировать ядро -- `opi5plus-3` (замени на свой хост), а
|
файлы из этого архива. Мой Orange Pi 5 Plus, на котором я буду компилировать ядро имеет хост -- `opi5plus-3` (замени
|
||||||
имя пользователя `opi` (замени на свой). На рабочем компьютере у меня есть папка `~/backup/` (`mkdir -p ~/backup`),
|
на свой хост), а имя пользователя от которого я работаю -- `opi` (замени на свой). На рабочем компьютере, с которого
|
||||||
куда я и буду копировать архив:
|
я захожу по SSH на Orange, у меня есть папка `~/backup/` (`mkdir -p ~/backup`). Скачиваю в неё архив:
|
||||||
```bash
|
```bash
|
||||||
scp opi@opi5plus-3.local:/tmp/boot-backup.tar.gz ~/backup/opi5plus-3-boot-backup.tar.gz
|
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 работает.
|
Как видим, `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
|
||||||
|
```
|
Loading…
x
Reference in New Issue
Block a user