上一篇文章说到在家里把 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 集群状态

查看集群状态

1
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 的时候会有报错,报错如下:

1
2
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 上读。
  • 整合多个虚拟机快照时,主机会短暂无响应

安装操作系统

UEFI 引导或者 Legacy BIOS 引导均可,冲就完事了

阅读全文 »

环境信息

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

破解过程

安装依赖

1
2
3
4
5
6
7
8
9
## 确认 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
阅读全文 »

Windows 下清理

1
2
3
# 管理员身份运行 cmd

ipconfig /flushdns
阅读全文 »

由于 XFS 文件系统不支持缩容,所以这里只讨论 Ext4 缩容的情况。

Ext4 文件系统调整的命令为 resize2fs,在使用这个命令前,我们需要将我们需要缩容的文件系统所在分区进行调整,由于 LVM 的调整相对简单,这里不做描述。

如果需要调整的分区非系统盘,则可以直接先卸载已挂载的文件系统,然后进行操作;若需要调整的分区在系统盘上,则需要进入 LiveCDshell 环境进行操作。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
sudo -i


## 文件系统缩容
e2fsck -f /dev/sda4
resize2fs /dev/sda4 <想要变成的大小>(如 200G)


## 缩小分区
fdisk /dev/sda


# 键入 p 查看当前分区信息,记下要缩小的分区的 start 值


# 键入 d 选择要删除的分区


# 键入 n 新建分区,确认 start 值为刚刚原分区记录下来的 start 值
# end 设置为 +<你想要的大小>(如 +200G)


# 键入 p 确认分区大小没有问题后,键入 w 保存退出


# 重新 resize 文件系统
resize2fs /dev/sda4

搭建准备

根据官方提供的说法,小规模使用 GitLab 只用单机部署即可,4C8G 的配置足够小一百人使用 Git,由于本次也只是熟悉一下 GitLab 的搭建过程和各组件之间的关系,所以就使用低配的虚拟机进行搭建了。

虚拟机配置

CPU 内存 硬盘
4*vCPU 8GB 200GB
阅读全文 »
0%