OpenWrt测试双WAN和双机高可用

2021-12-03 作者:

So here’s a quick example. OpenWrt shows capability to provide business-level internet access reliabilities – with not only load balancing/failover between 2 or more ISPs, but also VRRP based hardware (dual x86 vm in this experiment) level redundancy.

从以下的例子可以看出,OpenWrt基本满足了提供小型商业级Internet访问可靠性的初步要求。它不仅可以在多个ISP之间实现负载均衡以及故障切换,在此基础上同时提供基于VRRP的硬件冗余(本实验中为双x86虚拟机)。

 

先开仨虚拟机,前两台做OpenWrt,可以先做1台,复制1台。注意要安装mwan3和keepalived。

 

双WAN做好后,断开一路wan做测试。这里的wanb,用的是楼道里的不可靠wifi,通过Raspberry Pi向下路由一层转成有线网,能体现出不稳定的ISP接入状态。

本来是两路负载均衡的策略,wanb断开后,5s之内可以让所有对外请求都稳定落在wan上。

 

下一步,把MASTER的br-lan断开,模拟一个路由器硬件直接宕掉。

 

这个切换时间很短,还没反应过来,BACKUP就接管了VIP地址,对外请求几乎不受什么影响。

完整阅读本篇»

DIY带外管理 · 强悍Pi-KVM

2021-09-27 作者:

Let’s talk about the open source IP-KVM (or KVM over IP) solution based on Raspberry Pi 4B, named Pi-KVM, which has sophisticated feature sets that can provide almost same experience like HP ILO or DELL iDRAC, only except the hardware monitoring and err logging.

  • Hardware screen capture with low latency.
  • OTG Keyboard & mouse; Mass Storage Drive emulation.
  • ATX power control (thru Pi GPIO) with some MOSFET relays.
  • RJ-45 and USB serial console port.
  • IPMI BMC, redfish… all those professional server stuff support.
  • Nice and easy-to-use web UI with virtual keyboard, video quality control, key-combination shortcuts and virtual USB drive control.
  • A fully featured, user-customizable Linux OS.

只要玩过专业带外管理,基本就很难接受只有本地键鼠,以及OS之上的RDP和VNC了吧。

随便放两张Dell iDRAC系统截图吧。

今天要聊到的Pi-KVM,在简单廉价的硬件结构上,实现了除硬件子系统监控和告警之外,专业BMC几乎所有功能。

  • 低延迟的显示器信号捕捉和传输(100ms以内)。
  • OTG 键鼠,U盘模拟;给家用机远程load OS不叫事儿。
  • 通过Pi GPIO外加几个继电器实现的ATX电源控制;不说也懂,控制不了电源还叫BMC么。
  • RJ45和USB串口;既能控制路由/交换,也能控制自己。
  • IPMI BMC,redfish… 专业能玩的,它都能玩。
  • 简洁实用的web控制台,软键盘、组合键、粘贴板、视频质量控制、虚拟USB驱动器控制,全乎+易用。
  • 除了所有以上之外,还是个全功能的Arch Linux ARM版本,灵活性刚刚的,这可把专用BMC打趴了吧。

多吹无益,上图。

【注】请忽略裸线,5V和GND用胶带缠了一下,反正不是高压,胶带不绝缘也没关系,别物理刺穿就行;银色金属箔是屏蔽,说明小米的线做工还是靠谱的哈,该有的都没少。

文档制作基于Ventoy的Win10安装盘,全程不用物理U盘,安装Windows。

如果我没说清楚,就重申一遍。类似Dell和HP的专业BMC,可以直接远程挂载ISO装系统。Pi-KVM更狠,借着自己内置存储,直接把U盘/光盘镜像上传,经过物理USB线,模拟一个驱动器插到被控电脑就搞定了,有点爽。

如上所言,被控电脑经USB线连接仿真U盘,BIOS从Linux file-CD启动,无论装什么OS都能够顺利引导。

完整阅读本篇»

树莓派4B频繁遭遇系统假死

2021-07-23 作者:

This post talks about the frequently-happened X hang on the combination of newly updated Raspbian (Pi-OS) Buster and Raspberry Pi 4B, which was NEVER experienced on the Pi 3B (not 3B+) and same OS version after 30 + reboot tests.

PS: Pls note that’s X hang, not kernel hang or panic.

Summary: Pi 4B might has compatbilty issue with unbranded display that provides non-standard EDID info, which Pi 3B obviously has no problem to cooperate with.

本文聊一下最近颇为折磨的Pi 4B图形界面假死问题。当然,所谓假死就是X挂了,但kernel活着,从ssh可以很好的登录管理看日志的情况。

硬件是Pi 4B,操作系统是Raspbian (Pi-OS) Buster 升级最新。在上百次重启中,85%都会X hang。但有趣的是,Pi 3B(不是3B+)用同一块TF卡启动,测试30+次重启,无问题。

既然不是kernel hang,那么故障发生时总要看下log,所得如下:

可以说基本是稳定复现,每次都是Xorg先挂。随后呢,其他进程可能不挂,也可能跟着挂。

就“Xorg Tainted”做了大量的检索,升级OS,升级eeprom都试过,依然无果。只能继续看log继续碰运气。

完整阅读本篇»

Acme.sh全自动获取SSL通配符证书

2021-03-01 作者:

Here I’m gonna show you a quick how-to on obtaining a wildcard SSL cert from Let’s Encrypt with the “pure shell written” acme.sh, which is simple, light-weight and far beyond flexible.

And you may already aware that I’ve an earlier post on doing this with another tool called certbot-auto, well, unfortuantely it’s… kinda still working… but having no support or further update anymore. As for the “official successor” of the certbot-auto? It seems the official guys have decided to walk step and step closer into the mire, with that good-looking but evil-inside snapd… oh, don’t even say that word again. It’s weird enough – I saw nothing around Canonical brand on sponsors list from homepage of Let’s Encrypt. That’s another topic anyway, a wildcard SSL cert for free is still worth my sincere appreciation in this case.

今天简单聊下如何使用acme.sh来获取通配符证书,纯shell工具比之前聊过的certbot-auto更为简单、轻量且灵活。此外不幸的是,半年不见certbot已然走上邪路,奇怪的是Let’s Encrypt首页赞助商清单里并未发现Canonical在列,让我倍感意外。

废话少叙,先装为敬。

安装过程中会自动创建cronjob,如果不想自动创建,安装时要加个参数,也可以手动把cronjob删掉(则证书不会自动展期)。

此时把阿里云key和secret填入环境变量(建议使用RAM账户,风险最小化)。

然后一句话申请wildcard(通配符)证书。

完整阅读本篇»

使用PBS备份PVE物理机特定路径

2020-10-13 作者:

This post shows you how to use PBS (Proxmox Backup Server) to backup a specific directory (or mount point) of a PVE (Proxmox Virtual Environment) server, which is NOT exactly same thing in my mind – to backup a physical PVE machine and restore to be another new one (with all my personal settings in) though, but still somehow interesting and worth a try.

本文简介如何使用PBS(Proxmox Backup Server)进行PVE物理机备份。

本以为,这功能可以把pve物理机clone一份然后秒恢复成一台新物理机(类似硬盘dd但更简单)。但实际并非如此,该功能是把特定路径(比如根目录)下的文件整体打包备份(不含已挂载别的分区的路径);而恢复时也不是整分区恢复,而是按文件恢复,且文件已经存在时会报错。

虽然跟想的不太一样,至少这货有一点好处,简便易操作。相当于给PVE物理机磁盘打了个snapshot,而且PBS的管理界面可以把备份解开,只下载(恢复)其中某一个文件,有一定的实用价值。

现在看下备份过程,在PVE物理机上执行如下命令 –

其中 –

  • backup指备份操作。
  • 121-root.pxar是备份到具体的文件名,而pxar是pbs使用的备份文件格式。上一篇PBS初体验中提到了PBS中特殊的存储方式,这里也不例外,121-root.pxar文件名在pbs中也只是个索引文件,具体数据存储也是打散在.chunks下的65536个子目录中。
  • :/  指要备份root挂载点(之下比如/var挂载了别的分区,则不会被备份到)。
  • --repository  告诉备份命令,要备份到远端的PBS服务器。
  • 192.168.1.122:test-store-01  给出PBS服务器的具体IP(端口默认8007)和存储池名字。

备份完成后,从PBS管理界面,可以看到备份信息。

更有意思的是,备份可以展开,甚至可以下载某一具体文件。

那么如果从PVE上列出PBS的备份,从而检查内容和恢复呢?

完整阅读本篇»

Proxmox Backup Server上手初体验

2020-10-12 作者:

This is a basic test of PBS (Proxmox Backup Server) within only about 1 hour. So this literally means nothing but a bit of preliminary experience, which might be incorrect after some research in the near future, and should not be considered as a tutorial.

今天试了一下Proxmox Backup Server(以下简称PBS),国庆期间新鲜出炉的Beta 2,此处大致简单记录一下。

【注】体验时间不长,前后也就1小时多点儿。若有谬误敬请指出,可能很多东西还得读一下文档才能搞清楚。

 

首先,安装过程略去不提。因为PBS保持与PVE(Proxmox Virtual Environment)同样简洁的部署方式和安装速度。

装好后,可以把PBS当做外置存储直接挂载到PVE(单机或集群)上,并对单台vm直接进行备份,全程UI无需任何命令行操作。

而在PBS一端也提供相应的web UI(默认端口8007,区别于PVE的8006)对本地存储池进行管理,也可连接Remotes(不是指PVE,是指远端其他PBS)进行vm、lxc及其他PVE数据进行多端(比如云端+本地,又比如异地)备份的同步。

【注】:PBS需两块以上硬盘,其中一块独立系统盘,另1~n块为数据盘,从web UI可以全过程操作数据盘的分区表初始化、分区格式化以及挂载,支持ext4和zfs两种文件系统。

对PVE上vm 503(Ubuntu 18.04 LTS Server)进行备份,虽然web UI显示备份占用空间64GB(PVE对vm分配的磁盘大小),但实际占用PBS存储空间只有3.6GB,与PVE上的qcow2磁盘(稀疏文件)格式比较相似。

但深究之下,PBS的备份存储比较特别,不同于PVE上单个vm备份压缩包。PBS正经备份目录只有几个描述和索引文件,而实际数据存在一个名为.chunks的隐藏目录,之下有用4位16进制字符命名的,共计65536个子目录来存储经过分割的数据块。

所以是这种我不太理解的存储方式,提供了PBS声称的“去重、增量、加密、数据完整性以及压缩”的功能实现咯?

完整阅读本篇»