coreos-xhyveを使います
前回はディスクイメージをファイルとして作成していたのですが,
- 使いたい容量の分だけファイルを作っておかなければならない
- ファイルがデカいので取り回しが悪い
- 複数のディスク付けようと思ったら起動シェルを編集しなければならない
とか,いろいろ不都合だったのでNFSでマウントしてやることにします.
Mac(ホスト)側
NFSサーバを起動しておいてやる必要があります.
/etc/exports を作成
/etc/exports
/Volumes/docker -maproot=root -network 192.168.64.0 -mask 255.255.255.0
あわせてマウントポイントを作成
mkdir /Volumes/docker
sudo chown root:wheel /Volumes/docker
owner/groupを間違えるとコンテナが起動しなかった.
nfsd を起動
/etc/exports
を作成した時点で勝手にnfsd
が起動するようです.
なので,設定の確認だけ.
uraura@rosemary$ nfsd status
nfsd service is enabled
nfsd is running (pid 9994, 8 threads)
uraura@rosemary$ showmount -a -e
All mounts on localhost:
Exports list on localhost:
/Volumes/docker 192.168.64.0
設定がおかしいときは/etc/exports
を見直すか,nfsd
を再起動など
設定をリロード
sudo nfsd update
nfsdを再起動
sudo nfsd restart
CoreOSのcloud-initを作成
前回との差分は下記
[Mount]
- What=/dev/vda
+ What=192.168.64.1:/Volumes/docker
Where=/var/lib/docker
- Type=ext4
+ Type=nfs
+ Options=nolock
VM起動
sudo ./coreos-xhyve-run -f custom.conf
確認
CoreOS上で確認
core@localhost ~ $ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 892M 0 892M 0% /dev
tmpfs 1003M 0 1003M 0% /dev/shm
tmpfs 1003M 17M 987M 2% /run
tmpfs 1003M 0 1003M 0% /sys/fs/cgroup
tmpfs 1003M 6.8M 997M 1% /
/dev/loop0 195M 195M 0 100% /usr
tmpfs 1003M 0 1003M 0% /tmp
tmpfs 1003M 0 1003M 0% /media
192.168.64.1:/Volumes/docker 465G 224G 242G 49% /var/lib/docker
core@localhost ~ $ mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
devtmpfs on /dev type devtmpfs (rw,nosuid,seclabel,size=912768k,nr_inodes=228192,mode=755)
securityfs on /sys/kernel/security type securityfs (rw,nosuid,nodev,noexec,relatime)
tmpfs on /dev/shm type tmpfs (rw,nosuid,nodev,seclabel)
devpts on /dev/pts type devpts (rw,nosuid,noexec,relatime,seclabel,gid=5,mode=620,ptmxmode=000)
tmpfs on /run type tmpfs (rw,nosuid,nodev,seclabel,mode=755)
tmpfs on /sys/fs/cgroup type tmpfs (ro,nosuid,nodev,noexec,seclabel,mode=755)
cgroup on /sys/fs/cgroup/systemd type cgroup (rw,nosuid,nodev,noexec,relatime,xattr,release_agent=/usr/lib/systemd/systemd-cgroups-agent,name=systemd)
pstore on /sys/fs/pstore type pstore (rw,nosuid,nodev,noexec,relatime,seclabel)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/blkio type cgroup (rw,nosuid,nodev,noexec,relatime,blkio)
cgroup on /sys/fs/cgroup/memory type cgroup (rw,nosuid,nodev,noexec,relatime,memory)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/freezer type cgroup (rw,nosuid,nodev,noexec,relatime,freezer)
tmpfs on / type tmpfs (rw,relatime,seclabel)
/usr.squashfs (deleted) on /usr type squashfs (ro,relatime)
selinuxfs on /sys/fs/selinux type selinuxfs (rw,relatime)
tmpfs on /tmp type tmpfs (rw,seclabel)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
tmpfs on /media type tmpfs (rw,nosuid,nodev,noexec,relatime,seclabel)
192.168.64.1:/Volumes/docker on /var/lib/docker type nfs (rw,relatime,vers=3,rsize=65536,wsize=65536,namlen=255,hard,nolock,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.64.1,mountvers=3,mountport=820,mountproto=udp,local_lock=all,addr=192.168.64.1)
Mac側で確認
uraura@rosemary$ showmount -a -e
All mounts on localhost:
192.168.64.39:/Volumes/docker
Exports list on localhost:
/Volumes/docker 192.168.64.0