LoginSignup
2
2

More than 5 years have passed since last update.

coreos-xhyveに外部ストレージをマウントして使いたい

Last updated at Posted at 2015-11-07

xhyve-coreosを使うと簡単にcoreosが起動できますが,ちょっと使うとすぐにdiskfullになる&再起動すると全部消えてしまう,のでお試し程度にしか使えません.

なので,ディスクイメージを作成してそれをマウントすることで,容量を増やす&再起動しても消えない状態にしてみます.

準備

ディスクイメージを作成する

# ディスクイメージの作成
# サイズは適当に.ここでは16GB
dd if=/dev/zero of=extra.img bs=1g count=16

# 必要なものをインストール
brew install e2fsprogs
brew link --force e2fsprogs

# ext4のディスクイメージ作成
/usr/local/sbin/mkfs.ext4 extra.img

coreos-xhyveを起動パラメータを作成
起動するときに使うshellの中でsourceされてるだけ.

custom.conf
#XHYVE=xhyve
CHANNEL=beta
#VERSION=latest
MEMORY=2048
CPUS=2
# 設定しておくと,IPが固定になる
UUID=2EA0AF50-C413-4692-A971-18D78BA1D174
# 設定しておくと,authorized_keysに書きこんでくれる
SSHKEY="ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKxvJAey2uu2EaV39RgriDWJVFH0TMVtL22nZqkyk5bd uraura"
# 設定しておくと,cloudinitが走るときに読みこまれる
CLOUD_CONFIG=https://gist.githubusercontent.com/mystelynx/dff73645183273e3f30d/raw/coreos-cloudinit.yml
# 設定しておくと,/dev/vdaとして読み込まれる
IMG_HDD="-s 4,virtio-blk,$(pwd)/extra.img"

cloudinit
https://gist.github.com/mystelynx/dff73645183273e3f30d

  • 起動時には/var/lib/dockerディレクトリが存在しないので作成
  • /dev/vda/var/lib/dockerにマウントする

実行

sudo ./coreos-xhyve-run -f custom.conf

確認

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/net_cls,net_prio type cgroup (rw,nosuid,nodev,noexec,relatime,net_cls,net_prio)
cgroup on /sys/fs/cgroup/cpu,cpuacct type cgroup (rw,nosuid,nodev,noexec,relatime,cpu,cpuacct)
cgroup on /sys/fs/cgroup/perf_event type cgroup (rw,nosuid,nodev,noexec,relatime,perf_event)
cgroup on /sys/fs/cgroup/cpuset type cgroup (rw,nosuid,nodev,noexec,relatime,cpuset)
cgroup on /sys/fs/cgroup/devices type cgroup (rw,nosuid,nodev,noexec,relatime,devices)
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/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)
hugetlbfs on /dev/hugepages type hugetlbfs (rw,relatime,seclabel)
tmpfs on /media type tmpfs (rw,nosuid,nodev,noexec,relatime,seclabel)
mqueue on /dev/mqueue type mqueue (rw,relatime,seclabel)
debugfs on /sys/kernel/debug type debugfs (rw,relatime,seclabel)
/dev/vda on /var/lib/docker type ext4 (rw,relatime,seclabel,data=ordered) # !!!マウントされてる!!!

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
/dev/vda         16G   44M   15G   1% /var/lib/docker # !!!容量を確認!!!

core@localhost ~ $ docker pull mysql
Using default tag: latest
latest: Pulling from library/mysql
d0ca40da9e35: Downloading 1.052 MB/51.35 MB
d0ca40da9e35: Pull complete
d1f66aef36c9: Pull complete
7d612e4006d3: Pull complete
b2d99375e3b7: Pull complete
392caeba413e: Pull complete
7bae2f5f3bfb: Pull complete
7ff2dbbe5c0d: Pull complete
b8445caa7808: Pull complete
0a8ac22d8fbc: Pull complete
e03b6279eedf: Pull complete
f50f1cc3eb5a: Pull complete
459f24dd1811: Pull complete
9cba95895768: Pull complete
9be83d1073fd: Pull complete
a4814a4a5204: Pull complete
fb86ef4dd8b7: Pull complete
Digest: sha256:43c3231883d1a3a69da1faf594a4c9b7455a9659e946fd677858e71c10d011bd
Status: Downloaded newer image for mysql:latest

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% /media
tmpfs          1003M     0 1003M   0% /tmp
/dev/vda         16G  471M   15G   4% /var/lib/docker !!!マウントしたところが使われてる!!!

参考

https://coreos.com/os/docs/latest/mounting-storage.html#creating-and-mounting-a-btrfs-volume-file
https://github.com/coreos/coreos-xhyve/issues/14

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2