俗话说的好,工欲善其事必先利其器,要想活干得漂亮,就得有一个趁手的兵器。对于运维人来说,一个好的 Terminal,绝对可以大大滴提高工作效率。

曾经的我是 Ubuntu 的无脑吹、脑残粉,主要是命令行配合着一众工具使用起来非常丝滑,效率极高。而在 Windows 上除了安装各种执行环境配置环境变量外,还需要借助 xShell 这类工具来完成我的日常工作,虽然当时也折腾过一段时间的 cmder,但却是没有原生 Terminal 顺滑。

好在巨硬还有良心,推出了 Windows TerminalWSL,一度让我从 Ubuntu 脑残粉变成了 Windows 无脑吹~本文则是用来记录一下我自己的终端配置,因为我的工作环境几乎是跑在 WSL 上的,所以 Linux 和 MacOS 均可借鉴。

阅读全文 »

2023/12/26 我第一次出国,和女朋友来到了马来西亚,囫囵吞枣式的游玩让我往返了吉隆坡和槟城两座城市,体验了大马的飞机、高铁、轮渡以及地铁这四种交通工具。但也因为是第一次踏上这片陌生的领土,即便之前的准备做得再充分,也难免有很多无法顾及的地方,因此时隔八个月,我们将再次踏上这片熟悉又陌生的领土,特此写下一篇槟城旅行指北(不是游记,不是游记,不是游记

阅读全文 »

2023 年过的很快,感觉啥也没干就结束了,但是相比于过去的两年,2023 年过得还是相对比较精彩的:

  • 去了几个城市旅游
  • 开始健身
  • 重新搭建了 home-lab 环境
  • 开始带团队
阅读全文 »

上一篇文章说到在家里把 LB 升了级并且通过 acme.sh 自动配置了 LB 的泛域名证书,可以看到基本的结构如下:

由于这些服务都是运行在家里的服务器中,最终 LB 的 443 端口我是在路由器上通过端口映射的方式转到 8443 端口上的(家庭宽带的公网 IP 会将 80/443 等常用端口封禁)。而我为了优雅(确实不想在公网通过域名加端口的形式访问某个网站或者服务),在公网使用 CDN 来把我对公网映射的 8443 端口转换成了 443。这个做法对于正常的 Web 服务来说没有任何问题,但是对于网盘服务来说就有些伤筋动骨,毕竟网盘服务流量比较大,使用 CDN 的话确实比较费钱。因此对于网盘服务我又单独映射了一个 8888 端口到公网,在金钱面前,我不再选择优雅。

阅读全文 »

最近升级了下家里的 LB,通过 gitlab 将 LB 的配置做了版本管理,并且通过 docker-compose 实现 LB 的快速部署。但是家里的网络做了内外网的区分,为了实现内网 https 访问,我需要在内网的 LB 上配置一套 SSL 证书(公网的部分直接在 CDN 上配置了 let's encrypt 的免费证书,一年一换)

为了避免麻烦,对于内网的 https 证书希望做到以下两点:

  • 到期自动续

  • 泛域名

阅读全文 »

前段时间把家里的 NAS 做了一次改造,将用之前用了一年的架构推翻,换上了黑群晖。

故事还得从一年前说起。最初本着折腾的精神,采取了 Bcache+LVM 的方案,简单架构如下:
NAS 一代目

阅读全文 »

前几日在家中遇到一件有趣的事情,与大家分享一下。

起初我有一套硬件 A,安装了 ESXi 与一些虚拟机,后来将 A 上的数据盘与系统盘(U 盘)拆至硬件 B 上,即 ESXi 从 A 迁移到了 B。闲置下来的硬件 A 就被我拿来安装了黑苹果,然而在黑苹果的路上遇到了很多的坑,例如掉帧、黑色块的问题(显卡驱动),蓝牙鼠标掉线的问题(蓝牙驱动),后来甚至发现这套黑苹果访问不了我的虚拟机们,也访问不到 ESXi。这时的我还很天真的以为是虚拟化和黑苹果之间的问题,Google 了一番未果还是换回了 Windows。

阅读全文 »

背景

由于部分限制级场景无法联通外网,而 MAAS 在部署镜像的过程中,会默认连接 http://archive.ubuntu.com/ubuntu 的源去安装一些依赖包,在无外网环境下,会导致部署失败!因此考虑将 MAAS 在部署过程中的依赖包提前下载好,做成本地的 APT 仓库来解决。
由于 MAAS 需要安装的依赖包并不多(一共 260M 左右),并不需要使用 apt-mirror 去搭建完整的 apt 仓库,我们将需要的依赖包都下载好,使用 apt-fptarchive 来发布我们的仓库。

阅读全文 »

Galera 简介

Galera Cluster 是基于 MySQL/Innodb 二次开发而成的一个支持 “多主同步” 的数据库主从集群。具备多主、同步复制、高可用等特点。

MariaDB Galera Cluster,由 MariaDB 和 MySQL-wsrep 补丁实现,同 Percona 的 PXC 数据库集群,目前只支持运行在 Linux 系统上。从 MariaDB 10.1 版开始,MariaDB Server 和 MariaDB Galera Server 安装包已经合并,安装 MariaDB 时,Galera 相关依赖安装包会自动安装,像内置的插件或存储引擎一样,通过简单配置即可启用。

Galera 集群状态

查看集群状态

SHOW STATUS LIKE 'wsrep_local_state_comment';
阅读全文 »

第一天

18:30 落地,取得托运行李后,自江北机场 T3 航站楼乘坐地铁十号线(鲤鱼池方向)至红土地换乘地铁六号线(茶园方向)小什字下车(8 号口),马路对面就是宾馆!!

  • 重庆地铁可使用支付宝刷码进站
  • 宾馆前台在 16F,10-15F 是客房
  • 企业金会员,有双早,但是早饭不好吃
  • 紧承上一条,楼下马路对面就有花市豌杂面(如果不想吃汤面就和老板说要干溜),不想排队等座位的话,可以考虑打包去别的地方吃(隔壁就有类似大食堂的早餐店)

在宾馆休整些许后,步行出发去九村烤脑花(西西推荐,冤有头债有主,觉得不好吃不要找我),步行至洪崖洞店,在附近买了两杯一只酸奶牛后就餐;推荐香菜牛肉、烤茄子、烤鸡翅

九村烤脑花

  • 宾馆附近有三家九村烤脑花,分别在来福士、洪崖洞、解放碑,三个店离宾馆差不多距离,来福士店十点关门,所以建议去其他两个店

  • 九村烤脑花是烧烤店,烤脑花为特色菜,其他菜也很好吃,人均 70~80,人越多越划算

吃完回酒店修锅,一夜无事 💤

阅读全文 »

1、UEFI 引导问题

支持 KVM 虚拟机使用 UEFI 引导需要安装 OVMF 组件,参考基于 CentOS 安装 KVM
目前通过 virt-v2v 导入的 ova 且使用 UEFI 启动的虚拟机(from vSphere)再 define domain 的时候会有报错,报错如下:

error: Failed to define domain from /tmp/v2vlibvirt20e61b.xml
error: unsupported configuration: smm is not available with this QEMU binary

以上报错是 OVMF 的问题,参考:https://access.redhat.com/discussions/3175901

具体是因为因为 “OVMF_CODE.secboot.fd” 固件在当前的 qemu-kvm 中不受支持,RedHat Discussion 上有两种解决方案:

  1. 重构 OVMF RPM 包,参考: https://access.redhat.com/discussions/3175901

    Removing “-D SMM_REQUIRE”, rebuild the rpm, browse inside the rpm and then copy OVMF_CODE.secboot.fd to /usr/share/OVMF/OVMF_CODE.fd makes it work but I don’t know whether this will reduce security.

  2. 升级 qemu-kvm 版本至 2.6 以上的 qemu-kvm-rhev 版本

    ‘With this update, the “OVMF_CODE.secboot.fd” firmware binary file includes the Secure Boot feature. This binary can be used with pc-q35-rhel7.3.0 and later Q35 machine types only […]’
    Those machine types are unavailable when using the 1.5.3-based “qemu-kvm” package of base RHEL. They are available only when using the 2.6.0-based “qemu-kvm-rhev” package, which is not part of base RHEL.

未完待续……

Understanding VM Sanpshots in ESXi

VMware vSphere 6.7 虚拟机快照原理及 Veeam Backup 备份

vSAN 中的闪存缓存设备设计注意事项

初时虚拟磁盘文件

ESXi 虚拟机的存储文件主要为 .vmx、.vmsd、.vmdk 等文件,其中对于 .vmdk 文件:

  • xx.vmdk:该文件保存的是磁盘的元数据,包括 xx-flat.vmdk 和 xx-ctk.vmdk 文件

  • xx-flat.vmdk:该文件为 Extent Description 二级制文件啊,二级制数据保存在此文件中

  • xx-ctk.vmdk:该文件为 CTK 文件,CBT(数据块修改跟踪)启动时自动生成

快照

快照创建过程中,新增以下文件:

  • **-000001.vmdk

  • **-000001-ctk.vmdk

  • **-000001-delta.vmdk(基础 vmdk 上的变更位图)

  • **-Snapshot*.vmsn(快照状态文件)

快照创建过程简单描述如下

  1. 当虚拟机未创建快照时,虚拟机的读写操作直接在 VMDK 文件进行;

  2. 当虚拟机创建第一个快照时,这时生成 **-000001-delta.vmdk 和 **-000001.vmdk 文件,并立即锁住源 VMDK 文件,将其变为只读状态。虚拟机的写操作均在 **-000001.vmdk 上进行,读操作将在 **.vmdk 和 **-000001.vmdk 上进行(具体基于需要读的数据所在位置);

  3. 再次创建快照的原理和之前一样,生成 **-000002-delta.vmdk 和 **-000002.vmdk 文件,锁住 **-000001.vmdk 文件,将其变为只读状态。

注意点

  • 对于有用快照的虚拟机做写操作时,均在新的 vmdk 文件进行,如果数据在父 vmdk 上(被锁住成只读的 vmdk),先将数据拷贝到新的 vmdk 上,再进行修改;

  • 当读取某一块数据时,ESXi 需要判断从哪里去读:对于没有修改的数据块,从父 vmdk 读,对于已经修改的数据块,从新的 vmdk 上读。

  • 整合多个虚拟机快照时,主机会短暂无响应

环境信息

  • Ubuntu 16.04
  • Ruby 环境(Version ≥2.5)

破解过程

安装依赖

## 确认 ruby 版本最低为 2.5,否则需要升级
sudo apt-add-repository ppa:brightbox/ruby-ng
sudo apt update
sudo apt install ruby2.5 ruby2.5-dev
 
## 安装 gitlab ruby 环境依赖
sudo gem install gitlab
sudo gem install gitlab-license
sudo gem install openssl
阅读全文 »
0%