我的目标是开始发布一系列帖子,揭开一些 HA 迷雾的神秘面纱,因为很多人发现学习曲线陡峭。如果您有深入的 HA 开发知识,请随时提供说明、更正和改进,最重要的是让我知道我需要更改哪些内容来改进我的内容。

HA u003d 家庭助理

HAOS u003d 家庭助理操作系统 (OS)

硬件 u003d 硬件

PVE u003d Proxmox 虚拟环境 (VE)

UI u003d 用户界面

VM u003d 虚拟机

WAC u003d Web Admin Console(用于管理服务器的 Web 浏览器 GUI - PVE、HA)

有了以上内容,让我们深入了解HA 架构和设计。了解一些具体细节可能会帮助您设计更好更可靠的系统。

我唯一的关注点是HAOS。为什么?因为,对于我们大多数人来说,我认为没有理由选择 HAOS 以外的任何东西,它拥有一切(Linux 内核、GNU 实用程序、HA 主管和 HA 核心,以及所有 3rd-party 应用程序/add-上)。

我的建议是在 x86_x64 PC 系统中的 PVE 上安装 HA,以获得终极、无忧的体验。为什么选择 PVE?因为您可以在眨眼之间创建测试环境。例如,假设在更新 HA 之前,创建生产 HA 的副本,使其生效并尝试升级。如果没有问题出现,您的副本将成为您的实时环境。否则关闭副本并返回到您之前的生产系统。从字面上看,完成所有这些只需几分钟。

HAOS 的架构非常优雅。对于初学者来说,它使用正确的工具来构建具有最新 Linux 内核的现代 Linux 发行版以及运行基于 Docker 容器的现代 Linux 发行版所需的所有 GNU 实用程序。 HAOS 可以安装在裸机或虚拟机中。对我来说,PVE 是理想的虚拟化环境,因为它提供的内容比任何其他环境都多,而且如果您的财务资源有限,它是零成本; PVE和HA。 PVE 需要 x86_x64 硬件。假设我们的目标是可靠性,入门级 x86_x64 PC 的成本与 RPi 相似。如果您的项目需要各种电子设备,则 RPi 非常棒,但代价是无法在 PVE 中运行 HA。

有时我会使用 Windows 术语来描述一些术语。

HA 由以下主要系统组件组成:

高可用性操作系统 (HAOS)

HA 服务器是为满足 HA 要求而定制的 Linux 操作系统发行版(提供运行 Supervisor 和 Core 的最小 Linux 环境),托管多个子系统,其中一些在下面列出,但也可以与外部应用程序接口,例如 Windows以及 Linux 应用程序。

  • 音频系统,使 HA 核心和附加组件能够播放音频。

  • 命令行界面 (CLI) - 我们可以用来从命令行管理 HA 的 HAOS 命令。

  • Core,在 Docker 容器中运行并协调集成、接口、消息传递和通信子系统以及 HA 提供的所有其他好东西的 HA 应用程序。核心与用户、主管和物联网设备和服务(集成)进行交互。

  • 集成,这些程序旨在与物理设备和服务交互,支持物联网基础设施,HA 可以利用它来发挥其魔力。集成有两种类型:内置和社区。

  • 内置,是 HA 提供的集成,可以通过蓝/白 HA 图像识别。

  • 社区,是由社区或特定设备或服务的制造商开发的集成。

图像.png

  • 数据库管理系统 (DBMS) - 管理 HA 数据库(读取、写入、删除)。 HA 可以使用不同的 DBMS,例如 MariaDB 或 PostgreSQL,而默认是 SQLite。对于小型安装 SQLite 就足够了,但对于较大的安装,则需要更大量的 DBMS。

  • 域名系统 (DNS),它使 HA 核心和附加组件能够相互通信。

  • Docker,促进 HA 核心和附加组件在自己的容器中运行的容器化环境。

  • 附加组件,这是用于扩展 HA 功能的第 3 方应用程序;它们在 Docker 容器中运行。尽管这些附加组件可以作为应用程序安装在 HAOS 之外(例如在单独的 VM 中),但对于大多数用户来说,在 HA 生态系统 (HAOS) 中安装它们更容易。

  • 多播 DNS (mDNS),自动发现和自动连接网络 (LAN) 上的物理设备和服务,用于集成以启用它们之间的通信。

  • Secure Shell (SSH),一个允许安全远程访问 HAOS 的服务器组件,基于Dropbear SSH。

  • Supervisor,管理操作系统,如网络、Docker 容器,HA 用于核心和所有附加组件。

  • Webserver,服务于**Frontend**,通过访问HA WAC访问:例如192.168.0.xxx:8123。前端的构建块称为面板(HA 中的每个页面都是一个面板)。我们将在下一篇文章中介绍前端架构。

HAOS 中运行的服务器进程更多,但本指南将介绍更多技术方面的内容。

HA 客户端

它位于 HAOS 环境/服务器之外,包括以下能够与 HAOS 交互的客户端。

  • Web 控制台,这是我们用于管理任何 HA 安装的主要界面,但也可用作普通控制 UI(使用您登录的用户名,指示您是否可以管理或仅使用 HA) .

  • Mobile Console,这是我们用来访问 HA 安装并与之交互的移动应用程序。

  • 安卓应用

  • iOS应用

架构示意图

下文提供了上述内容的示意图:

图像.png

从这一点开始,我假设您在 PVE VM 中运行 HA。在这篇文章的最后,我提供了一个链接列表,您可以参考这些链接来构建一个合理的 HA 背景,特别是如果您是这项技术的新手。

深入兔子洞

如果您想检查 HA 引擎盖下运行的内容,请继续阅读:

访问 PVE WAC:https://192.168.0.253:8006(您的 IP 地址会有所不同)。

选择正在运行的 VM HA:105 (HAOS)(您的 VMID 会有所不同)

选择 >_ Console,您应该会看到 HA CLI 正在等待您输入命令。

图像.png

输入 ha 并按回车键。您将看到可用于与 HA 核心交互的命令列表。

图像.png

键入 core check 以查看会发生什么(您可以在任何命令中省略 ha 前缀)。

图像.png

要查看完整的命令列表,请在 ha > 提示符下键入 help

图像.png

要查看命令类型 [command] -h 的语法。例如,键入 addons -h

图像.png

大多数 HA CLI 提供了管理 HA 特定子系统的命令。但是,如果您想在操作系统级别更深入怎么办。输入命令 login。此命令将使您进入Bashshell。

图像.png

进入 Bash shell 后,您可以使用 Bash shell 支持的任何命令,允许您与 Linux 操作系统进行交互。

键入 ls -al

图像.png

键入 docker ps。查看正在运行的 HA docker 容器列表(下面的屏幕截图显示了默认 HA 安装的运行容器)。

图像.png

类型 systemctl list-unit-files |更多的。此命令将显示 HAOS 中可用的所有进程(下面的屏幕截图显示了默认 HA 安装的单位)。启用的那些是在您启动 HAOS 时将处于活动状态(运行)的那些。我用红色突出显示了 HAOS 的一些更重要的子系统。Dropbear是轻量级 Linux 发行版(有时称为 Linux 设备)中使用的 OpenSSH 替代方案。

图像.png

要查看正在运行的进程列表,请键入:systemctl list-units

systemctl 是一个非常强大的命令,使用时要格外小心!

要查看 systemctl 类型的命令行语法:systemctl -h |更多的

图像.png

HAOS 中可用的 Bash 命令如下所示(注意命令是GNU程序,它们的属性以 - 开头并以 x 结尾(例如 -rwxr-xr-x 是 GNU提供特定功能的程序/实用程序)。例如,docker,more,ls,这些是前面使用的命令,都在下面的屏幕截图中列出。

图像.png

键入 exit 以退出 Bash 并返回 HA CLI。

图像.png

图像.png


要深入研究上述一些主题,您可以使用以下链接:

我的帖子:

PVE 设置指南,PVE 架构

HA PVE 设置指南,HA 配置指南

Win10 PVE 设置指南,Win11 PVE 设置指南

PVE Clustering & High Availability Guide: [Part 1]((https://blog.habitats.tech/howto-setup-a-3-node-proxmox-ve-71-cluster-and-configure-it-for-high-availability-on-a-single-machine-part-1-for-learning-and-testing-purposes-only), [Part 2]((https://blog.habitats.tech/howto-setup-a-3-node-proxmox-ve-71-cluster-and-configure-it-for-high-availability-on-a-single-machine-part-2-for-learning-and-testing-purposes-only), [Part 3]((https://blog.habitats.tech/howto-setup-a-3-node-proxmox-ve-71-cluster-and-configure-it-for-high-availability-on-a-single-machine-part-3-for-learning-and-testing-purposes-only), [Part 4]((https://blog.habitats.tech/howto-setup-a-3-node-proxmox-ve-71-cluster-and-configure-it-for-high-availability-on-a-single-machine-part-4-for-learning-and-testing-purposes-only), [Part 5]((https://blog.habitats.tech/howto-setup-a-3-node-proxmox-ve-71-cluster-and-configure-it-for-high-availability-on-a-single-machine-part-5-for-learning-and-testing-purposes-only), [Part 6]((https://blog.habitats.tech/howto-setup-a-3-node-proxmox-ve-71-cluster-and-configure-it-for-high-availability-on-a-single-machine-part-6-for-learning-and-testing-purposes-only)

HA 链接:

开发人员文档,API文档,文档,(https://www.home-assistant.io/docs/)HA Integrations](https://www.home-assistant.io/integrations/),[Full Demo

其他链接:

YAML 参考,GNU 操作系统,Linux 内核,[Proxmox VE]](https://www.proxmox.com/en/proxmox-ve),[00182 Debian]1


请考虑订阅我的博客,因为您只会获得高质量的内容;没有浪费时间、广告、垃圾邮件或其他非生产性活动/做法。

还请考虑访问和订阅我们的 YouTube 频道;我们最近开始发布视频。

我们致力于随着时间的推移改进和增强。

如果您希望我们在未来的主题/指南中介绍某些内容,请告诉我们。

重要提示:我们会不时增强我们帖子的内容。因此,建议您通过订阅我们的blog.habitats.tech或访问我们的 subredditreddit.com/r/HabitatsTech(我们的Reddit 中的帖子链接到我们的原始帖子)。

Logo

更多推荐