记一次 XFS 硬盘缩容

由于 CentOS 7 的云模板镜像使用了 XFS,并且默认大小为 8G,实际文件大小只有不到 2G,开二十台测试机的硬盘就要被塞满了… 由于XFS 只提供了扩容,无法直接进行缩容,所以缩容方式大多比较 Dirty

思路

把旧模板的内容直接拷贝进新模板,修改 fstab 与 grub 的 UUID,或者直接用旧 UUID 覆盖

步骤

先开一台虚拟机,挂载两个模板上去,为了避免某些问题,可以调整挂载/启动顺序来人工干预硬件名

1
2
# 虚拟机启动的硬盘是 SDB , 新模板的硬盘是 SDA 
mount -t xfs -o nouuid /dev/sdc1 /mnt/sdc # 三个分区 UUID 相同,故忽略 UUID

使用 fdisk 将 /dev/sda1 缩容到 2G,再次格式化,修改分区 UUID 为 /dev/sdc1 的 UUID

1
2
3
4
5
6
7
8
9
10
fdisk /dev/sda # 进入后对 /dev/sda1 进行缩容操作,需要选中 boot flag

···

mkfs.xfs /dev/sda1 # 格式化 /dev/sda1

blkid /dev/sdc1 # 显示 UUID

xfs_admin -U $uuid /dev/sda1 # 把原来的 UUID 塞回去

直接挂载 /dev/sda1,把原有镜像内容拷贝到新镜像

1
2
3
mount -t xfs -o nouuid /dev/sda1 /mnt/sda

cp -rf /mnt/sdc/* /mnt/sda/

关机卸载 SDA ,扔进 libguest 缩减镜像大小

1
virt-resize --shrink /dev/sda1 $new_image_name $dest_image_name

完成

Hello World

一直很向往能够跟人讲讲自己的故事。但是苦于自己交流障碍+摆烂所以一直没有开始动笔记录。

咱没有网名,玩网十余年,咱一直不知道自己该叫什么。很不喜欢,并且很惧怕直称其他人的名字,总是会想办法使用昵称代替。

咱不擅长沟通,更不擅长讲故事。在写这篇文章的前一个小时,咱还在想咱的网名应该起什么,给收来的R7425做维护。一个小时后就在这里写博客文章了。下一个小时又会去干什么,什么时候弃坑,咱自己也不知道。

咱的情绪波动很大,就像咱不知道自己想干什么一样,尽量不跟人发作,但是通常控制不住咱自己锐评….

咱很穷,什么都不会,想玩BGP连节点的维护费都出不起:( DN42还没试过,手里有的几乎都是国内机器,故障风险比较高。

会在这个博客里记录一些自己玩过的东西,如有错漏还请各位指正。

喜欢猫猫,狐狐,讨厌人类。

晚安,世界。

前端优化记录

在写某项目前端的时候,发现零优化部署到小水管服务器上居然有将近3秒的 Speed Index 。

天下武功,无快不破,这对任何一个热爱查看应用服务器列表 ping 值是不是绿色的中年男人都是不可接受的(误)虽然中文网络相关的教程有很多,但是咱还是想借此机会水一篇文章(bushi

SplitChunks 分包

由于咱上手就使用了 Next.js, 所以这方面的配置用不到太多,大多数静态文件方面的优化已经被 Next.js 开箱即用地实现好了。分包操作只需要调用 dynamic 函数引入 React 节点即可。

图片优化

咱其实是 SVG 偏执狂,什么图片都想要用 SVG (不是嵌入图片的那一种) 来代替,以追求高分辨率。但是对于不得不用到的光栅图片,还是要做一下优化的。Next.js 官方给出了 next/Image 以优化图片。

压缩

启用文件压缩可以降低客户端等待时长,咱的网页服务器是兽兽大佬打包的 Nginx,直接在配置文件中打开 gzip 和 brotli 压缩即可。

1
2
3
4
5
6
7
...
#简单地将所有类型文件压缩处理
gzip on;
gzip_types *;
brotli on;
brotli_types *;
...