MicroOS:起步
MicroOS 是 SUSE 旗下一款很新的系统,面向原子化与自动化维护。
那么该从何体会它的好?它是为什么而诞生的?
特性
- 作为一款面向云端高效稳定的服务器操作系统,秉持容器第一的原则:程序服务均在容器上运行
- 为了保证系统运行的稳定性,操作系统的根文件为只读
- 有健康检查机制 Health Checker 确认当前运行的操作系统工作正确——如果工作不正确,则自动切换到上一个快照保证系统正确。而当添加了其他的需要验证正确性的服务,只需要给健康检查机制编写新的插件即可
- 采用事务性更新机制 Transactional Updates 更新系统,而不影响当前运行中的系统
步入 MicroOS 的第一步
面对这样一个理念几乎全新的系统,需要重新了解一些特性才能正确的搞懂它
重新整理理念
系统的不可变性
在普通的操作系统,比如最基本的 Debian 与 Ubuntu 与 Arch,更新操作系统往往会导致当前的操作系统的「文件系统」发生更改
而对于 MicroOS 来讲,更新系统并不会更新到当前正在运行的系统之上,而是在当前运行的系统之上建立一层新的「文件系统」,在下一次启动操作系统的时候才会应用最新的「文件系统」
软件与服务
对于 MicroOS,软件更倾向于系统层面的工具,而服务从由 Systemd 接管的部分更改为由容器运行时管理的容器
这对于普通的发行版是由一定的区别的。普通的发行版往往是把它们混杂在一起,软件是服务,服务也是软件
可伸缩性
对于 MicroOS,其保证了尽可能快的启动,因此相比与普通的发行版,MicroOS 更能适合需要伸缩的大型系统
批量部署
MicroOS 提供了一个批量部署工具,能让系统管理员可以快速的大规模部署 MicroOS
系统维护
对于 MicroOS 的系统,其使用了 openSUSE Leap 或者 openSUSE Tuwbleweed,也就是其基础系统的系统套件取决于你选择了基于哪个发行版的 MicroOS(基本上都是 Tuwbleweed)
软件包
如果你需要在基础系统上进行操作,你需要使用 transactional-update pkg
命令取代 openSUSE 的 zypper
命令
在对系统完成软件更新更改之后,需要使用 reboot 更换到最新的系统——这一点与 NixOS 极其类似,但是 MicroOS 采用的是 Btrfs 快照保证的原子化,而 NixOS 选择的是挂载不同的 nix store 来实现
修改配置
如果你要修改系统的配置,类似 /etc
这些放配置文件的地方,你需要使用 transactional-update shell
进入一个新的可变快照里面——这个快照会在下一次重启时应用,或者使用 transactional-update apply
提前应用(不推荐)
自维护
什么叫做自维护?自动维护指的是不需要人工干预,系统即可实现自己对自己进行维护——比如说系统没有正常启动,那么系统将会进入自维护模式尝试让自己启动成功
听起来很神奇,但是原理其实很简单
还记得 MicroOS 有一个健康检查的工具套件吗?它预置了基础系统需要检查用的脚本,如果这些脚本执行后返回的值都是 0,那么证明系统启动成功;反之如果有一个返回了其他值,那么证明系统没有启动成功,MicroOS 会进行自回滚:回滚到以前的快照,直到有一个快照健康检查正常