ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

firectl全命令行选项速查表:Firecracker microVM内核、磁盘、网络、CPU、内存参数一次讲透

firectl全命令行选项速查表:Firecracker microVM内核、磁盘、网络、CPU、内存参数一次讲透 firectl全命令行选项速查表Firecracker microVM内核、磁盘、网络、CPU、内存参数一次讲透【免费下载链接】firectlfirectl is a command-line tool to run Firecracker microVMs项目地址: https://gitcode.com/gh_mirrors/fi/firectlfirectl 是一个用于运行 Firecracker microVM的命令行工具一条命令即可拉起带控制台、磁盘读写和网络连接功能的轻量级虚拟机。这篇文章把它的全部命令行选项按内核、磁盘、网络、CPU、内存、日志、Jailer 七个类别做成速查表帮你一次讲透每个参数的含义、默认值和常见坑点。30秒了解 firectl⚡定位纯命令行运行 Firecracker microVM支持 console 交互、根文件系统读写、TAP 网络版本当前版本0.2.0兼容 Firecracker1.0.0定义在version.go构建需要 Go 1.23执行make即可环境不方便装 Go 时可用make build-in-docker前置条件firecracker 二进制、未压缩的内核镜像vmlinux、根文件系统镜像快速开始构建与最小化启动git clone https://gitcode.com/gh_mirrors/fi/firectl cd firectl make # 或 make build-in-docker最简启动只需要内核和根磁盘两个参数./firectl \ --kernelhello-vmlinux.bin \ --root-drivehello-rootfs.ext4如果系统 PATH 中找不到 firecracker可用--firecracker-binary显式指定二进制路径查找逻辑见main.go中的runVMM。全选项速查总表参数定义集中在options.go的options结构体中下表与其一一对应。1️⃣ 内核类参数选项缩写默认值说明--kernel-./vmlinux内核镜像路径未压缩的 vmlinux--kernel-opts-ro consolettyS0 noapic rebootk panic1 pcioff nomodules内核命令行参数--initrd-path-无initrd 路径0.2.0 版本新增要点--kernel-opts默认以ro只读启动若需要写入文件系统记得改成rwconsolettyS0是控制台能正常输出的关键。2️⃣ 磁盘类参数选项缩写默认值说明--root-drive-无根磁盘镜像路径可加:ro或:rw后缀--root-partition-无根分区 UUIDpartuuid--add-drive-无附加磁盘必须带:ro/:rw后缀可多次指定要点根磁盘的 Drive ID 固定为1附加磁盘从2开始自动编号见options.go中getBlockDevices附加磁盘缺少:ro/:rw后缀会直接报错退出根磁盘的只读/读写切换是 0.2.0 版本才加入的能力3️⃣ 网络类参数选项缩写默认值说明--tap-device-无TAP 网卡格式DEVICE/MAC可多次指定--vsock-device-无vsock 设备格式PATH:CID可多次指定--metadata-无MMDS 元数据JSON 格式要点--tap-device必须写成DEVICE/MACADDR两段例如tap0/52:54:00:12:34:56否则报格式错误--vsock-device的 CID 必须是数字格式为unix-socket路径:CID只要传了合法的--metadatafirectl 会自动为网卡开启 MMDS见options.go中getNetwork4️⃣ CPU 与内存参数选项缩写默认值说明--ncpus-c1vCPU 数量--memory-m512内存大小单位MiB--disable-smt-t关闭禁用超线程SMT--cpu-template-无CPU 模板仅支持C3或T2要点microVM 追求极简默认 1 vCPU 512 MiB 即可跑通大多数测试场景-t常与--cpu-template搭配用于复现特定硬件行为。5️⃣ 日志与调试参数选项缩写默认值说明--vmm-log-fifo-无VMM 日志 FIFO 路径--log-level-Debug日志级别--metrics-fifo-无指标输出 FIFO 路径--firecracker-log-l无把 FIFO 内容重定向到指定日志文件--socket-path-s自动生成Firecracker API socket 路径--debug-d关闭启用 firectl 自身的调试输出要点不指定 socket 时firectl 会在$HOME或临时目录中自动生成一个随机.firecracker.sock文件FIFO 文件通常成对出现只给其中一个时另一个会自动生成在临时目录fcfifo*下退出时自动清理⚠️--vmm-log-fifo与--firecracker-log不能同时使用会直接报错6️⃣ Jailer 沙箱参数Jailer 是 Firecracker 的权限隔离器0.2.0 版本起 firectl 完整支持--jailer非空时自动启用见options.go选项缩写说明--jailer-Jailer 二进制路径指定即启用沙箱模式--id-Jailer VMM ID--exec-file-Jailer 要执行的文件--uid/--gid-降权运行的 UID / GID--node-绑定的 NUMA 节点--chroot-base-dir-chroot 基础目录--daemonize-以后台守护进程方式运行7️⃣ 基础参数选项缩写说明--firecracker-binary-firecracker 二进制路径默认在 PATH 中查找--version-输出版本号与支持的 Firecracker 版本--help-h打印帮助信息无参数运行时也会打印实战一个覆盖多类参数的完整示例官方 README 中的典型用法一次用到了 CPU 模板、日志、内核参数、vsock 和 MMDS 元数据firectl \ --kernel~/bin/vmlinux \ --root-drive/images/image-debootstrap.img -t \ --cpu-templateT2 \ --firecracker-log~/firecracker-vmm.log \ --kernel-optsconsolettyS0 noapic rebootk panic1 pcioff nomodules rw \ --vsock-deviceroot:3 \ --metadata{foo:bar}常见报错速查 以下报错均定义在errors.go对照选项即可快速定位报错信息原因与解决NIC config wasnt of the form DEVICE/MACADDR--tap-device未写成设备名/MAC两段invalid drive specification. Must have :rw or :ro suffix附加磁盘漏写:ro/:rw后缀invalid drive specification. Must have path后缀前没有给出磁盘路径unable to parse vsock devices/...parse vsock CID as a numbervsock 格式应为PATH:数字CIDvmm-log-fifo and firecracker-log cannot be used together两个日志选项互斥二选一invalid metadata, unable to parse as json--metadata不是合法 JSON源码结构导航 options.go全部选项定义、参数解析与 Firecracker 配置转换的核心main.go参数解析入口、firecracker 二进制检查、VMM 启动与信号处理errors.go所有可预期错误的定义version.go版本号0.2.0与兼容版本Makefilebuild/build-in-docker/install等构建目标CHANGELOG.md0.2.0 版本新增 initrd、根磁盘只读、Jailer、多网卡等能力一页纸记忆清单 ✅场景关键选项最简启动--kernel--root-drive需要写盘--root-drivexxx.img:rw或--kernel-opts改rw加磁盘--add-drivepath:ro可重复上网--tap-devicetap0/52:54:00:xx:xx:xx宿主直连--vsock-devicesockpath:CID--metadata规格调整-cCPU 数、-m内存 MiB、-t关超线程排障-l落盘日志、-d调试输出、--log-level掌握这张速查表后你就能用 firectl 在命令行上灵活拉起任意规格的 Firecracker microVM 了。【免费下载链接】firectlfirectl is a command-line tool to run Firecracker microVMs项目地址: https://gitcode.com/gh_mirrors/fi/firectl创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表