CloudDrive2 网盘挂载教程
坑边闲话:早年笔者一直以为网盘只能通过官方客户端使用,然而官方客户端并不好用。最近一两年,网盘的本地挂载越发成熟,海内外的网盘公司纷纷推出 OpenAPI,允许第三方开发者使用网盘。将 OpenAPI 和 libfuse/winfsp 结合起来就可以实现网盘的本地挂载,基本可以像操作本地文件一样操作网盘里的数据,特别是在只读场景。本文详细介绍商业软件 CloudDrive2 的使用方法。 1. 安装与配置· CloudDrive2 是一个以网盘本地挂载为卖点的商业软件,虽然目前还处于 0.x 版本,但它已经有了很强的可用性,而且在笔者半年的使用时长中表现非常稳定。 不过要注意,并非所有网盘都支持本地挂载,也并非所有网盘都提供 Open API 允许开发者折腾。比如知名的百度网盘就没有 Open API, 现有的挂载功能基于对百度网盘的协议逆向。 1.1 Windows 与 macOS· 1.2 Linux· 笔者以 Debian 13 为例进行讲解。由于 CloudDrive 官方仅提供编译好的二进制,而且没有提供安装包,因此需要手动下载、解压,并创建系统后台驻留进程。 1....
终于,群晖 DSM 放弃限制硬盘认证
坑边闲话:前面的文章提到,群晖使用 Synology 认证硬盘是出于对家用市场的轻视,以及对企业级市场的向往。然而半年的时间刚过去,群晖就决定在 DSM 7.3 里移除这个限制。笔者审阅了群晖 7.3 的发布公告,并没有明确看到取消硬盘认证限制的说明,但是 GURU3d 声称群晖确实悄咪咪地移出了限制。 1. 现状分析· 消息源自 GURU3D 现在的市场对于群晖可能比较严苛。 AI 数据中心的崛起导致 HDD 出货集中在 DC 领域,NAS 家用市场的配额明显变变少,进一步拉低用户购买 NAS 的意愿。 中国大陆出现了很多 NAS 竞争对手,包括绿联、飞牛在内的 NAS 系统基本把群晖的 web Desktop 功能复刻了一遍,群晖独有的用户体验已经不再是护城河。 与中国大陆的友商相比,群晖的价格过于昂贵。 现在群晖头铁还要给自己加限制,基本等同于放弃了中国大陆市场。群晖高层可能是观望了半年,最终决定取消限制。不过这也从侧面印证,群晖的家用市场收入依然在总收入中占据很大一块,企业级的收入尚且无法让群晖放弃家用市场。 其实不仅仅是群晖,Qnap 如今也在逐渐放低姿态,使用...
Jellyfin 数据库后端史诗级更新
坑边闲话:Jellyfin 作为一个开源免费且声誉良好的媒体服务器一直被玩家追捧,然而 Jellyfin 早期与 SQlite 绑定非常深,导致无法丝滑迁移到其他的高级数据库。在数据非常多且数据库查询插入操作很频繁的情况下,SQlite 显现出了巨大的弊端。 哔哩哔哩原文 此前我 follow 这个版本已经很久了,终于,等到了正式版。 Jellyfin 脱胎于 Emby,因此前期的很多代码与 Emby 重复很多,不过这些陈年历史就不讲了。下面单纯围绕媒体服务器的一些特点进行讲解。 此前 Jellyfin 使用的后端数据库是 sqlite,这是一个超级强大的本地数据库,据说其源代码的测试框架有 9000 多万行代码(仅仅是为了测试 sqlite),基本实现了百分百代码覆盖率测试。 然而 sqlite 有个致命问题,那就是无法扩展。注意,不是扩展很难,而且没有任何办法横向扩展。因为 sqlite 基于单个文件。一旦某个进程占有了这个数据库文件并上锁,别人就没办法使用这个数据库。 可怕的是前期的 Jellyfin 完全基于 sqlite 开发,换言之,你的电影元数据、演员元数...
ZFS NVMe 全闪存储性能优化
坑边闲话:ZFS 要发挥出最好的性能,离不开专家优化。本文介绍 ZFS 在资源充足情况下的优化方式。 哔哩哔哩原文 1. NVMe 阵列要配置强大的多核 CPU· ZFS 目前的物理磁盘块分配模型与 NVMe 多队列、队列深的特性不能兼容,因此丑话说在前面:CPU 一般的情况下,很难把 ZFS RAID-Z 的性能优化到特别强,比如发挥出 PCI e 4.0 x4 ZFS member 50% 性能。 NVMe 协议与 CPU 核心的环形队列机制密切相关。它通过 SQ 和 CQ 实现主机与控制器间的高效通信,每个队列为环形结构,可绑定到特定 CPU 核心。环形缓冲区的特点就是能减少锁竞争与中断延迟,实现多核并行 I/O 处理。然而,NVMe 软阵列性能依赖 CPU 多核并行处理能力。每个 NVMe 队列通常绑定一个核心,负责提交与完成 I/O,核心数量太少会导致多个设备和队列争夺同一核心资源,产生上下文切换和中断延迟,无法大规模并行处理请求,最终使 IOPS、带宽显著下降,阵列性能受限。 如图1所示,EPYC 7302 这种弱鸡的胶水核心,最多也就能发挥出一个 Gen4 ...
B 站 2000 天创作回顾:我决定不再免费
坑边闲话:B 站后台提示我成为 UP 主已经 1999 天了。如果加上我第一个视频的制作筹备时间,总天数已经达到 2000 天。这不仅是一个数字,更是一段旅程的长度。在这 2000 天里,我从一个技术爱好者成长为一个内容创作者,也经历了热情、倦怠和反思。我用这段时间记录了我的技术学习之路,也收获了很多同行、朋友和灵感。这篇文章,也是一封写给所有关注我的人尤其是老观众的信。今天,我终于做出了一个重要的决定——开启频道付费。 1. 为什么选择内容付费模式· 首先声明,我的所有付费视频会根据时长、实效性等因素设置限时免费观看,一般是发布后的 24 到 120 小时。我想如此久的免费限时观看足够大部分网友看完我的最新视频。毕竟,我不希望内容付费成为一道墙,而是成为一座桥,用来连接我和那些认可我的人。 如果你不希望错过某些精彩内容,点击关注并打开内容更新提醒将是非常明智的选择。 1.2 为优质内容付费是时代的共识· 如果一个视频能够让你对某项技术有更深的洞察,或者直接帮助你优化工作流,我想大多数人都会愿意主动打赏:少则点赞投币,多则充电支持。 别人怎么想我不确定,但我自己确实是这样做...
一个很特殊的双万兆雷电 5 扩展坞
坑边闲话:本文首发于哔哩哔哩专栏。OWC 一直深耕专业工作室领域,推出过不少很有价值的雷电扩展坞,比如采用 Intel JHL7440 芯片的 Thunderbolt Pro Dock 给我留下了深刻的印象。如今 OWC 沿用相似的外观设计,推出了一款支持双万兆电口的雷电 5 扩展坞。 哔哩哔哩原文 OWC,型号:Thunderbolt 5 Dual 10GbE Network Dock 官网地址 看名字就知道,有两个 10GbE 万兆接口,竟然还都是电口! 后置的两个 10GbE 网口彼此独立,均采用 AQC113 方案,支持 IEEE 802.1Qav,也就是一种为 audio/video 优化过的 QoS,保证音视频流的实时性。这个功能在 2.5G 网口上是不支持的。 此外这个扩展坞砍掉了 CF-express 接口,导致小工作室拷卡颇为难受。不过专业剧组为了防止素材流出,一般都会对原始素材上锁,只允许专业 DIT 拷贝并加密存储在 NAS 上,一般剪辑师只能远程挂载代理媒体进行剪辑,不允许直接访问原始素材。因此,在剪辑机上用 CF-express 烤卡也显得不...
Debian 13 系统初始化
坑边闲话:Linux 的系统初始化教程对新手非常有帮助,本文提供一个合适的流程化操作,方便用户使用相关服务。本文遵循最小化安装原则,帮助用户逐步构建自己的 Linux 系统。所谓最小化安装,指的是不添加过多的 package,只包含最基本的系统组件。当然,也不包括图形化界面。 前期必看步骤:使用 ZFSBootMenu 安装 Linux 重装前先备份 若用户是重装系统,请务必记得备份重要数据,比如 zsh 历史记录 ~/.config/zsh/.zhistory systemd 的自定义条目,如 多容器组合启动服务 harbor.service, minio.service ZFS 定期快照任务 zfs_snapshot.service /etc/fstab 的特殊挂载条目 家目录中的工程项目 某些特殊的、只存储在本地的容器镜像孤本 1. 配置常规用户· 遵照 使用 ZFSBootMenu 安装 Linux 指导安装的用户,可以直接跳到本章最后一节,此前的步骤已经轻松地完成了前面的这些内容。 1.1 创建新用户· 最小化安装之后,系统里仅有 root 用户,因此先...
Debian 13 发布了,有些小事说一下
坑边闲话:感觉 27 岁之后,明显感觉到时间加快,Debian 12 还没用多久,Debian 13 就要出来了。截至笔者编辑这篇文章,Debian 13 已经更新挺长一阵子了。时光易逝,劝君惜取少年时! 哔哩哔哩原文 Debian 13 镜像发布了! 有没有提前升级的小白鼠出来介绍一下经验,没有坑的话我也要升级了! 2023 年的时候升级 bookworm 还是很顺利的,这次据说 bookworm 升 trixie 有 OpenSSH 问题,如果不希望通过 stable-updates 升级 openssh,就只能等 12.12 版本修复问题之后再升级。 另外,trixie 的 tmp 目录默认使用 tmpfs,也就是拿内存的一部分来做存储,以后跑网络文件协议测速可方便了,直接 NFS/SMB 共享 tmp 目录即可,无需使用第三方软件创建内存盘。不过据说默认使用一半内存做 tmpfs,感觉有点激进了,另外不知道会不会和 ZFS 的 ARC 产生冲突。 好消息是 systemd 继续一往无前,吃掉了自动发现和挂载加密文件系统的功能。 这次升级过后,网络接口的名称可能会有...
Linux NFS 共享设置教程
坑边闲话:在 Linux 集群中,NFS 文件共享协议非常重要。NFS 集访问控制和高性能 RPC 于一身,具有非常强大的实用性。本文详细介绍 NFS 的配置。 1. NFS 的诞生与发展简史· 1.1 NFS 简史· NFS 由 Sun Microsystems 于 1984 年创建,它是一种允许不同计算机通过网络共享和访问文件的分布式文件系统协议。最初 NFS 旨在解决跨异构系统的文件共享问题,允许用户像访问本地文件一样访问远程文件。如今 NFS 是 Unix 和 Linux 领域最常用的共享文件系统,几乎没有之一。 1.2 NFS 与 SMB 的区别· NFS 与 Samba/SMB/CIFS 最大的区别在于设计目标与应用场景。NFS 起源于类 Unix 系统,强调轻量、高效、无状态,适合 Linux/Unix 服务器之间的文件共享。比如,修改了服务器的导出表之后无需重启 NFS 服务器进程即可生效。而 SMB/CIFS 则源自 Windows 生态,功能更丰富(如权限继承、打印共享、用户认证),但协议更复杂、开销也更大,一般用在企业内部员工管理中。 在纯 Linux...
virtiofs, 虚拟化的最后一块拼图
坑边闲话:virtiofs 释放了 virtio 思想的潜力,让 host 和 guest 之间共享文件系统成为可能。此前的操作要么依赖网络,要么使用块设备,都算不上很优雅。前者带来了巨大的网络开销,后者不够灵活。virtiofs 可以在一定程度上缓解这个问题。 哔哩哔哩原文 1. 虚拟化的优化无处不在· virtio 这个思想在虚拟化里简直就是大杀四方,无往而不利。 最近我也几乎是重写了之前的一篇虚拟化博客,感兴趣的朋友可以看一下,里面总结了我最近几年学习使用虚拟化的一些心得、感想。 2. virtiofs 是什么?· 首先说,这是一个基于 FUSE/Winfsp 的文件系统,也就是说,这个文件系统在用户态实现。 它能做什么呢?简单说来,就是绕过网络协议,直接让 host 将自己的文件系统暴露给 guest,guest 可以直接读写主机的某个文件目录。 这看上去非常不可思议,有点类似容器技术里的路径映射,因为它充分利用了主机和虚拟机的存储相邻特性。 由于使用了 FUSE 协议,因此 virtiofs 天生就是一个客户端/服务器系统,需要在虚拟机里安装一个 fuse 模块...
Linux 命令行配置 iSCSI target
坑边闲话:iSCSI 块共享协议在数据中心里应用非常广泛,但是许多 NAS 玩家只会在群晖、TrueNAS 等系统上使用 GUI 进行配置。其实在标准的通用 Linux 上配置 iSCSI server 非常简单,理解了原理之后,配置所需的实际步骤非常少。本文详细介绍如何在 Debian 12 系统上配置 iSCSI target. iSCSI 服务端被称为 target,在 Linux 生态中有不同的 target 代码实现,本文推荐使用现代内核支持的 LIO(Linux-IO Target),这是官方主流方案,稳定、灵活、内核级支持。 常见 target 不同实现的特性如下表所示。 实现方式 服务名称 管理工具 备注 LIO (Linux-IO Target) 内核模块,服务名 rtslib-fb-targetctl targetcli / targetcli-fb 默认、内核集成、现代系统首选 TGT (SCSI Target Framework) tgt 服务 tgtadm, tgt-admin 老牌项目,用户态,简单轻量,但不再积极维护 SCS...
关于视频封面
坑边闲话:作为一个理工男,设计一个吸引人的封面真是太难了。毕竟理工男有自己的审美,能表现出信息是第一位的,吸引人可能只是其次。没办法,审美这种东西和选择无关,而是根植于内心的倾向。 哔哩哔哩原文 左上角是我的频道内部编号,因为以后有可能发布到其他视频平台,B站也不一定能过审,所以就做一个统一编号。以后群友针对某个视频进行提问,直接引用这个编号即可。 右上角是具体的视频类型,比如,存储大类有很多小类,其中包括FileSystem, RAID, Benchmark, SSD 等。 中间是title,表示视频主题。 主题下面是subtitle,视频副标题,一般是我的个人评价。 左下角是关键字列表,比如涉及的产品名及型号,使用的软件及版本号。 为了方便观看,封面底色代表对应的主题。 目前就想到这么多,欢迎B友们补充,好的话我会发小红包感谢。 哦对了,不要告诉我视频索引号和某岛国动作片风格类似 😅 可不是开玩笑的。 还要说一下,在简单的工作场景下,苹果的 Pixelmator Pro 真的可以平替 Photoshop 了,价格便宜而且体验非常不错 👍
ZFS AnyRAID 要来了?
坑边闲话:在家用场景下,用户的硬盘规格可能比较杂,不同容量的磁盘组件 RAID,会被木桶原理限制。AnyRAID 是一个新兴的技术,可以在保障安全的情况下最大限度地发挥磁盘的空间。 哔哩哔哩原文 在看近期的 TrueNAS Tech Talk 时,我本想了解一下 AnyRAID 的最新进展,没想到看到 Kris Moore 也认同不要使用同一个制造商的同批次产品,因为这样会导致磨损过于均衡。 广告 这里打一个免费的广告。Subeasy 是一个支持多国语言的字幕生成工具,基于 Whisper 大语言模型。 它可以在理解视频音频的基础之上生成字幕。由于大模型能理解故事背景,因此生成的字幕非常准确,很多术语也能较好地翻译。目前它两种模式,第一种是上传音视频文件然后转译字幕,另一种是直接粘贴流媒体网站的视频链接然后由服务器进行下载并处理。后者用来看外文内容非常好用,因为 Subeasy 的翻译功能基于大模型,所以翻译质量非常高。 目前该网站对免费用户有每天有一次的快速处理,以及另外两次的慢速通道处理。 对于自媒体博主,只要粉丝量在5000以上就可以申请激活码,免费获得一个月的无...
回顾过去五年的创作,丢失了 29% 的视频素材
坑边闲话:本文最早发布于哔哩哔哩专栏。复盘做视频这 5 年,发现早期有些视频工程找不回来了。仿佛失去了很多东西,像是一个孩子在春天的田野里想抓住空中的飞虫,然而伴随着夕阳的落下,那些错过的信息彻底沉默在了时间的长河里。 哔哩哔哩原文 起这个标题并没有耸人听闻的意义。 目前经过我细致的排查,总共有三成的视频失去了原始素材。少数几个存有素材,但是失去了工程文件,还有一部分貌似保留了一部分原始素材。 统计完数据,感觉心好痛。 后来又找到了一个,53/181=29% 损失惨重。其中有我精心制作的几个我本人非常看重的视频,还有播放量最高的几个视频。 目前来看,丢失的素材有以下几种: 整个素材、工程彻底找不到了。 部分素材还能找到,但是有一些素材丢了,比如在 DaVinci Resolve 中录制的音频片段随着重装软件、系统而丢失。 还能找回素材,但是工程文件丢了,因为剪辑工程比较复杂,因此无法还原当时的剪辑状态。 还能找回素材,工程文件也丢了,但是工程非常简单,甚至没有几笔剪辑,可以较为轻松地恢复工程。 1. 为什么会丢失数据呢?· 怎么还有些 2024 年的素材也丢了...
10GB/s 的 ZFS 软阵列速度
坑边闲话:在关闭多线程之后,采用本地测试的方式,笔者发现 ZFS 呈现出了惊人的 NAND 直读、直写性能。本文介绍这一发现,但并不尝试分析原因。 哔哩哔哩原文 最近在跑实验,supervisor 建议我关闭超线程。找了半天 BIOS 没找到 HyperThreading 选项,最后发现 AMD 的超线程不叫 HT, 而是 SMT. 遗憾的是 SMT 的关闭与 performance tuning 的关闭是绑定的,所以 NUMA per socket 就得手动设置,最大一个 CPU 插槽 4 个 NUMA,对应两个 ZEN3 CCD. 毕竟 EPYC 7003 内部就是四组内存控制器,这很合理。 有意思的来了。 我看到核心连线的拓扑图,发现设置了 NPS 之后,CPU 与 NVMe 的关系变得更具体了,说人话就是 NVMe 与 CPU 的亲和性更高了。于是我顺手给这个 ZFS 跑了个分。 服务器:H3C R4950g5 with dual AMD EPYC 7763 zpool 包含两个 vdev 第一个是四盘 intel 750 1.2TB MLC raid-z1 ...
Docker 容器技术 p2:深入理解容器网络
坑边闲话:在上文中,笔者介绍了 Docker 的一些常识和基本命令,并对新手朋友做了友好的介绍。容器作为云计算的底层技术,在存储、网络、计算方面都必须足够完备。上文仅介绍了容器镜像的组成以及如何使用容器进行服务、计算。本文将以 Docker 作为案例,对容器的网络模型进行细致分析。 1. Docker 简介· 如果我们把容器想象成一个虚拟机,那么它本身将有一套完整的网络协议栈和网络硬件。换言之,容器有自己的网卡、IP 地址、传输端口。然而真实的容器并不是虚拟机的替代品。 容器常识 目前容器技术有两个方向: 进程级容器,比如 Docker. Docker 于 2013 年 3 月首次发布,推动了容器技术的标准化发展,并最终促成了 OCI(Open Container Initiative)标准的建立。目前,Docker 及其兼容实现已成为进程级容器的主流。 系统级容器,比如 LXC. LXC(Linux Containers)诞生于 2008 年 6 月,早于 Docker. 该技术由 IBM 最初开发,旨在作为虚拟机的一种轻量级替代方案。它更强调运行一个完整的 Linux ...
哔哩哔哩频道两万订阅纪念
坑边闲话:这是一期 B 站专栏,首发在 B 站。还是老样子,最权威版本以本博客为准。自笔者在 2020 年 4 月 3 日发布第一个随手拍摄的视频开始,到 2025 年 5 月 6 日正式达成两万订阅量,笔者足足花了五年零一个月的时间。对于一个不会整活儿的知识区业余 UP 主,这实在是一个很漫长但很有意义的过程。 B 站的朋友们好啊,最近后台提醒粉丝量达到两万,看到这个消息我是非常开心的。 平时每次看到 B 站创作中心右上角的「成为UP主的第 xxx 天」提醒,我都感觉很不可思议,仿佛前几天才上传第一个视频。 恍然间,五年零一个月就过去了。 1. 自媒体成绩单· 如果做自媒体有一个赚钱成绩单,我想我肯定是不及格。 我在上大学的时候就是知乎用户。大概是 2019 年的某一天,我在知乎看到一个问题:简中互联网是不是已经彻底沦为垃圾场?(大概是这个意思,反正不是很乐观的描述) 我浏览完几个回答后感觉心里很难过,因为当时我还是一个很正直、很傻瓜的热血青年,尚未经历各种现实的毒打。那时我自信满满地立志要从自我做起,输出有价值的内容,绝不复制粘贴一些无从考证、不可复现的内容。 这世界上最...
对群晖官方认证硬盘的看法
坑边闲话:在企业级存储领域,群晖和威联通都是事实上的小厂,但笔者认为这两家公司颇有世界级正规公司的风范:控制产品销售单价,严禁经销商窜货,配套设施完善,拥有精心设计的多语言官网。最近群晖尝试在 Plus 机型上进行强制硬盘认证,即非 Synology 认证/出品的硬盘将不被系统支持。毫无疑问,这一举措在许多 NAS 玩家中引起了轩然大波。本文将尝试不加任何情绪地对这件事进行分析。 截至 2025 年 4 月 28 日, 参见图 1,在群晖全球官网可以发现,对于较老的机型如 DS923+,官方依然提供第三方硬盘认证列表,支持如下硬盘: 希捷 IronWolf, SkyHawk, SkyHawkAI; 东芝 N300, MN06, MN07, MN08; 西部数据红盘、紫盘; 参见图 2,在群晖中国官网可以发现,对于较新的机型如 DS925+,官方只提供自家的硬盘。虽然不排除 Synology 后面会扩展兼容性列表,但以目前的风向来看,群晖上层大概率是想只允许用户使用自家认证的硬盘。 1. 小小吐槽· 为方便头铁的读者选购群晖认证硬盘,此处提前分析一下群晖认证硬盘的...
ZFS 设计理念真的落后了,但它很稳定
坑边闲话:闲话 哔哩哔哩原文 Debian bookworm 的 backport 频道正式推送了 OpenZFS 2.3.1, 没错,就是这么快! 一般来说,作为社区 package 打包维护者,不太可能在 1.0, 2.0, 3.0 就积极引入,第一个小版本 如 2.01, 3.01 才是引入的最佳时间。这种版本 和大版本整数发布不会有很长的间隔 功能和大版本整数版基本相同 修复了整数版本无心之失产生的一些小问题 我第一时间进行了更新,然后开启了 direct-IO 进行了测试。 总体来看,性能表现和我预料的差不多。 写操作· direct-IO 在写入方面和 buffered-IO 没有太大区别,之所以写入速度没有突飞猛进,主要是 ZFS 的瓶颈在 ZIO 后端上,把压缩、去重、加密全部关掉,速度也没有太多提升。本质上是因为 ZFS 希望尽可能多地合并写入,把多个 write 合并为一个合适的 record. 然而,这种优化逻辑是为机械阵列而生的,全 nvme 闪存并不需要这个逻辑。 综上,direct-IO 并没有带来性能上的惊喜,但是这仍然属于一个重大的进步...
面对质疑我选择继续说真话
坑边闲话:最近我做了两期与家庭 NAS 和个人数据备份相关的内容,但收到了好多批判的声音。其中认为我不懂 NAS 的不在少数,选择在 QQ 群和我当场对质人的也有很多。这里我想集中回应一下。 哔哩哔哩原文 我现在依然坚持我的观点:如果你的机械阵列存储的多是热门电影,或者此类可公开下载的内容占比已经达到现有数据的 85% 以上,那你基本可以告别机械硬盘了。 之前我在家庭仅闪存 NAS 里说得有点急(因为我刚从苏格兰旅游回来,手头的事情一团乱,然而我想趁着当时头脑比较清楚就赶紧录了素材。)事实证明视频较长,我后面说话的时候嘴巴已经有点不够流畅了。 下面我再把核心观点罗列一下。 1. 杀死机械盘的不是 SSD,而是高速带宽· 此前我们从没想过家庭网络可以做到 1000Mbps,甚至部分发达地区已经开始推广 2500Mbps,这是很吓人的。日本某些地区的万兆因特网也开始普及,比起他们我们还有点差距,但我们现在这个速度已经很够用了。这时候,使用网盘作为存储流媒体数据的想法就很自然、直接了。 使用机械阵列存储大量电影,这种用法自 2010 年代开始在群晖用户流行开来。毕竟当时的网络完...
漫谈 CloudDrive2 的文件缓冲机制
坑边闲话:本文最初发布于哔哩哔哩专栏。这篇文章属于临时起意,后来审阅文章时发现技术细节上有严重问题,该部分描述目前已经被修复,一切内容以本博客为准。 哔哩哔哩原文 此前我在视频 BV1iAPgexEi6 里提到可以使用 OpenList/CloudDrive/Rclone/Raidirve 这种网盘工具把网络盘挂载到本地,实现云盘本地化使用。现在我感觉有点过于理想了。 想说的东西很多,今天这篇专栏就当作打草稿,读者且来批判性观看。 1. CloudDrive2 的缓存模型· 任何读写模型都有流控机制,哪怕是本地的 PCIe NVMe 硬盘,也会借助 PCIe 协议的 Credit-Based Flow Control 做流控。当然,这不同于 TCP 的滑动窗口,PCIe 流控协议更倾向于低延迟,目标是防止缓冲区溢出。 所以按照这个观点来看,我们的 PC 透过 CloudDrive2 往网盘写入数据,CloudDrive2 在接收本地的写入请求时,也需要有一个缓存、流控协议,防止本地的文件浏览器或者 rsync 这种 sender 把 CloudDrive2 的缓存写爆。 ...
小小更新一下异地组网拓扑
坑边闲话:最近这段时间一直在慢慢调整我的异地组网拓扑。之前那套中心化方案虽然国内访问体验非常丝滑,但洲际链路延迟实在让人抓狂,很多操作总感觉“卡半拍”。趁着春节假期有空,我干脆把整个网络拓扑重新梳理了一遍,顺便也测试了几种不同的跨境连接方式。没想到这次小小调整,整体体验提升非常明显,也顺便把一些踩过的坑记录下来,方便后面复盘,也希望对有类似需求的朋友有参考价值。 哔哩哔哩原文 此前一直用的是 BV1hm4y167F5 介绍的中心化组网方案,在国内体验特别好,但是洲际延迟太高了。用了一阵子 Cloudflare Tunnel 的基于云管理的服务发布隧道,感觉也还挺好,而且免费!白嫖党狂喜! 可惜的是 Cloudflare Tunnel 貌似对 HTTP 之外的协议支持不行,SSH 之类的无法轻松使用。后来群友建议可以自己优选 VPS,然后自己做优化拓扑。于是购买了白丝云的 AS9929 VPS,延迟从 310 降低到了 205 左右,很多协议的性能提升非常明显。 不过遗憾的是 Vim 编辑器在 200 毫秒的延迟下依然很难用,我选择继续使用 VSCode. 如图所示,现在的...
ZFS 记录值很重要
坑边闲话:recordsize 是个理解上限和下限都很不平凡的概念,普通人可能认为大文件连续吞吐用大的 recordsize,小吞吐、改写就用小 recordsize,然而这并不够深入,甚至在某些场景下会造成误解。 哔哩哔哩原文 1. 深入理解 recordsize· recordsize 并不是一个具体的概念,而是在将 dirty page 往磁盘同步时,采用的最大分片值。因此,使用大的 recordsize 会导致分块数量变少,占用的指针数量也变少,但压缩空间变大容易达成更高的压缩率。 然而,如果要对某个文件进行改写,大的 recordsize 极有可能造成恶劣影响。比如一个数据库的 .db 文件有 10GB, 但是一次只改写里面 8KB 的数据,这时如果使用了 128KiB 的 recordsize,将导致要先读出其中 128KiB 的连续内容,然后改写其中的 8KB 数据,最后申请 128KiB 的新空间并把改完的内容写进去。由此可见,一次 I/O 就造成了 128/8=16 倍的写放大。 之前我反复强调 recordsize 对 ZFS 存储占用的影响,今天有个...
使用 Sanoid 自动管理 ZFS 快照
坑边闲话:ZFS 快照任务非常关键,然而仅使用手动快照在大多数情况下无法避免意外事件,借助自动化的快照机制,可以有效提高抗风险能力。本文基于 Debian bookworm 系统介绍开源快照管理软件 Sanoid 的使用方法。 1. 快照的自动管理· 此前笔者的快照也是自动化编排的,只是行为比较简单。笔者编写了一个自动执行快照的 Systemd Timer,然后定期执行某个脚本: 在脚本里定义了执行快照的逻辑; 在 Systemd Timer 和 Service 定义执行时间和执行路径。 然而,自己重复造轮子的代价就是会翻车,然后重复解决前人已经解决的问题。因此推荐使用开发多年的工具 Sanoid. 该工具原理与笔者此前的开发工作类似,只是它以 TOML 配置文件对快照任务进行了抽象,而且增加了对快照生命周期的支持,能够自动销毁过期的快照。 2. 安装 Sanoid· Sanoid 的主要开发语言是 Perl,因此不需要经过复杂的编译即可使用。目前 Sanoid 没有集成到 ZFS 工具链上游,也没有集成到 Debian 发行版的软件包仓库,因此用户需要安装 Debian...
使用 ZFSBootMenu 安装 Debian 12 系统
坑边闲话:ZFS 有千般好,但是将 Linux 安装在 ZFS 上仍颇具挑战性。GRUB 2 已支持引导 Linux on ZFS,但只有 Ubuntu 等胆大的发行版内置了 ZFS 启动支持,而 Debian 这种比较尊重开源许可的发行版并不支持。本文介绍使用 ZFSBootMenu 在 ZFS 文件系统上安装 Debian 的方法。注意,本方案仅适用于 x86 架构。 1. 前期准备· ZFSBootMenu 是一个专为 root-on-ZFS 设计的 Linux bootloader,它支持快照和磁盘加密。ZFSBootMenu 本质上是一个小型的、独立的 Linux 系统,它知道如何在 ZFS 文件系统中查找目标 Linux 系统的内核和 initramfs 镜像。当识别出合适的内核与 initramfs,ZFSBootMenu 会使用 kexec 命令启动该内核。 kexec kexec 是 Linux 内核中的一个功能,它允许在不经过硬件重新引导的情况下直接加载并启动一个新的内核。这可以显著加快内核的重启过程,因为跳过了固件(BIOS/UEFI)初始化和引导加载程...
























