mirror of
https://github.com/CHN-beta/nixos.git
synced 2026-01-12 04:39:23 +08:00
7.1 KiB
7.1 KiB
定价与配置
售卖两类 kvm 虚拟机。它们都按照需求的内存和硬盘定价。
普通虚拟机
- 硬盘每 10 GB 0.056 美元每月;内存每 128 MB 0.044 美元每月。每 1G 内存附带 1 核心 CPU,内存不够 1G 的给 1 核心 CPU。
- 例如,4C4G/100G 的配置,每月 2 美元。
- 这个价格相当于母鸡价格的 70% 。
- 适合绝大多数轻度负载。不适合的情况包括:
- 硬盘需要禁用 CoW 以获得尽可能高的 IOPS,例如较大的、繁忙的数据库(例如大型 mastodon/misskey 实例)。
- 希望内存中的数据一直驻留在内存中(而不是被交换到 swap 中)。
- 可能会超售,但我凭良心保证,当你需要时,仍然可以占满内存和硬盘;长期占满硬盘和内存不算滥用。
- 前期肯定不会超售(笑死,根本没有那么多用户)。
- 永远不会滥售;但后期可能会视情况调整价格。如果涨价,会延迟三个月生效。如果降价则立即生效。
- 万一出现卖超太多了、不够用的情况,我会自掏腰包增加母鸡配置。
- 实现细节:
- 硬盘会使用 raw 格式,放置在启用 CoW 的 btrfs 子卷中;不预先分配,用到时再分配。
- 内存会允许交换到 swap 中,并开启 KSM。
- 限购:
- 每台内存不能超过 8 GB,硬盘不能超过 200 GB。有更大的需求请买下一个配置。
- 每个用户只能购买一台。
- 这个限购措施是为了防止有人和我抬杠,花 70% 的价格把整个母鸡买下来。并不是营销手段。合理需求的情况都可以谈。
- 宿主机会自动创建快照,需要时可以回滚到几个小时或几天前的状态。
独立虚拟机(资源独立分配)
- 按照母鸡价格的 1 倍定价。也就是:硬盘每 100 GB 0.8 美元每月;每 5G 内存/2 CPU 2.5 美元每月。
- 实现细节:
- 硬盘会使用 raw 格式,放置在禁用 CoW 的 btrfs 子卷中;预先分配所有容量。
- 内存会锁定在物理内存中。
- CPU 会隔离/锁定在物理 CPU 上。
- 宿主机不会创建硬盘的快照。
- 两类资源可以混合购买。比如可以硬盘按照独立虚拟机的价格购买,内存/CPU 按照普通虚拟机的价格购买。
其它细节
- 无论哪个方案,硬盘/内存长时间占满都不算滥用。对于第一个方案,CPU 是共享的,请不要长时间占满。
- 暂不限制带宽,合理使用即可。
- 默认共享 IPv4,支持端口转发(详见下文说明)。独立的 IPv4 每个每月 2 美元。 独立的 IPv6 免费,但暂不支持(技术上没有准备好,如果有人有需要我就去准备)。
- 只卖朋友和朋友的朋友(总之得有人保证别拿去做坏事)。 若此定价对您来说仍然难以接受,可以联系我,打五折或者免费。
- 此价格有效期三个月(2025-05-17 至 2025-08-17)。 05-17 前免费,08-17 后定价会视情况调整(例如将流量计入收费项目,内存部分相应降价),在那之前会公布新的定价。
- 预计收入无法覆盖成本。如果某个月的收入高于成本,承诺会将多出的部分捐出去。
- 非 kvm 虚拟机的服务(例如,只跑一个 docker 容器,只跑某一个服务)定价私聊,大致上是上方价格再加上我的工作成本(事少的免费,事多的就要实收了)。
- 配置随时可以调整。所以按照自己这个月够用的来就行,不需要为未来留余量。但每次调整都需要重启虚拟机。
- 母鸡价格 40 美元每月,配置在下方列出。
- 机房: LAX3 (IP:srv3.chn.moe)
- CPU: Intel® Xeon E5-2650L v3 (12 Cores 24 Threads)
- Memory: 64GB ECC DDR4
- Storage: 1TB NVMe (可加,8 美元/TB,另有 NFS 3 美元/TB)
- Network: 1Gbps, 1x IPv4 (可加,2 美元/IPv4), 8TB/month
操作
我不提供网页端的控制面板(因为懒得搞,要是有人想替我搞的话那就提供)。
在确认购买后,我会给你一个 VNC 端口和密码。虚拟机会首先启动到 netboot.xyz,你需要登陆 VNC 选择自己喜欢的发行版并安装。 安装好系统之后,VNC 连接仍然可以使用,你可以使用它来重装系统等。如果你担心安全性,也可以告知我,将它关闭。
此外,我还可以提供一个宿主机的账户(SSH 连接),用于强制重启虚拟机等(会做好权限的分隔的)。若有需要请告知我。
共享 IP
支持多种转发策略。
- TCP/UDP 端口转发,就是最普通的转发。 这个方法只有一个坏处,就是多个虚拟机不能共享同一个公网 IP 的同一个端口。 这导致用户在访问时往往需要明确端口号而不能使用默认端口(因为默认端口已经被占用了), 例如需要使用 https://srv3.chn.moe:4321 而不是 https://srv3.chn.moe。 建议不面向普通用户的服务使用这个方法(例如,ssh,coturn,等)。
- 利用 Nginx,根据一些信息分流再转发给虚拟机。这可以做到多个虚拟机共享同一个端口,但也有缺陷。具体来说,它有很多种方法:
- 依据 SNI 分流,并透明代理到虚拟机。 这个办法的缺点是,只支持 TLS 连接(例如 https),同时服务端看到的用户侧端口会变化(通常情况下不影响什么)。 只要这两个缺点不是问题,就建议用这个方法。
- 依据 SNI 分流,并使用代理协议(proxy protocol)转发给虚拟机。 相比于上一个方法,这个方法可以正确传递用户侧端口号,但需要虚拟机的服务端支持 proxy protocol。
- Nginx 依据 http 的 host 头分流,再发给虚拟机。 这个方法的缺点有很多,例如我需要修改你的域名的 DNS(用来申请证书),母鸡到虚拟机的连接不加密,只支持 http/https,等。 这个方法唯一的好处是,如果你不会配置 nginx,可以在宿主机上配置好,虚拟机只要跑后端的服务就行了。
- 别转发了,直接在宿主机上处理。例如 80 到 443 的跳转。以及如果你想要 host 一个小的、不常改动的静态网站,等。
杂项
如何调整虚拟机启动顺序(重启到 iso 而不是硬盘)?
先重启虚拟机,然后马上连接 VNC,可以看到“Tiano Core”的提示。这个提示只会停留 15 秒,所以重启虚拟机后要迅速连接 VNC。 在这个界面按 ESC 就可以进入虚拟机的 BIOS,在这里可以修改虚拟机的一些设置(就像实体机的 BIOS 那样)。 如果只是想临时从 ISO 启动,可以在这里选择“Boot Manager”,然后选择带 “CDROM” 那一项就可以了。
如何调整硬盘大小?
- 扩容:你需要在扩容后将分区和文件系统调整大(占用虚拟磁盘在末尾新增的空间)。
- 缩容:你需要在缩容前将分区和文件系统调整小(在虚拟磁盘的末尾预留出要缩容的空间)。
这些事情都最好你自己来做。我可以尝试帮忙,但不保证数据安全。
如何强制重启虚拟机/关机后如何开机?
登陆宿主机后,使用 vm 命令,不加任何参数,即可看到提示,按提示操作。