FreeBSD云计算Jail主机
主机激活Jail
在系统启动时启动Jails:
sysrc jail_enable="YES"
# 配置所有jails在后台启动
sysrc jail_parallel_start="YES"
Jail网络
我采用 虚拟网络(VNET) : 每个jail有隔离的网络堆栈,独立IP地址、路由表和网络接口(就像独立的虚拟机)
由于 FreeBSD无线网络BCM43602(通过wifibox) 已经部署了
winfibox0
bridge,所以这部分跳过。如果是常规Host主机,假设主机物理网卡是em0
,则执行:
bridge
ifconfig bridge create
bridge
附加到物理网卡ifconfig bridge0 addm em0
为了能够在操作系统重启之后自动启动网桥,需要在 /etc/rc.conf
配置:
/etc/rc.conf
中配置网桥defaultrouter="192.168.1.1"
cloned_interfaces="bridge0"
ifconfig_bridge0="inet 192.168.1.150/24 addm em0 up"
警告
这部分Host准备 VNET 网桥,因为我的环境已经具备 winfibox0
所以跳过。后续如果在服务器部署,则需要这部分。
ZFS存储
Jail目录树
目前采用FreeBSD Handbook中使用的 /usr/local/jails
目录(但我后续部署将改成 /jails
)
zfs create -o mountpoint=/usr/local/jails zroot/jails
zfs create zroot/jails/media
zfs create zroot/jails/templates
zfs create zroot/jails/containers
除了 /usr/local/jails
目录外,其他目录还有:
media
将包含已下载用户空间的压缩文件templates
在使用 Thin Jails 时,该目录存储模板(共享核心系统)containers
将存储jail (也就是容器)
data/docs
数据集
zroot/data/docs
存储日常工作数据文档,这个目录在Host主机上维护,通过 NullFS 输出给dev
Jail
docs
数据集zfs create -p zroot/data/docs
zfs set compression=lz4 zroot/data/docs
data/pgdb
数据集
备注
计划将 在FreeBSD Jail中运行PostgreSQL 数据部分单独使用ZFS数据集存储,待补充
Jail配置文件
我采用 /etc/jail.conf
结合 /etc/jail.conf.d/
目录下配置:
/etc/jail.conf
提供所有Jail的公共部分/etc/jail.conf.d/
目录中为每个jail创建一个文件,其中内容是每个Jail的特定区别部分FreeBSD Jail运行时会自动合并两部分配置,形成一个完整的Jail配置
设置 /etc/jail.conf
公共部分: