相当雑なコンディションで実験
メインマシン(Windows 10 Pro 1809, Mem 32GB, SSD+HDD)上で、FreeBSD仮想マシンとLinux CentOS仮想マシンをほぼ同時にvagrant upで構築開始して遊んでみた。
FreeBSD機側はvimとemacsをpkg installするハンデがつく。
Linux機側はDocker & Kubernetes1台様クラスタをインストールするハンデがつく。
結果はLinux機側が圧倒的に速く起動した;;
emacsおそるべし...つかウソやろ....
tag: freebsd, vagrant, virtualbox, zfs
タイトルが散文的で意味不明だと思うが...仮想マシン上でFreeBSD zfsを使おうとすると落ちるという話。
Vagrantfileの中で追加ディスクを付加する。1台目はufsで使う。2台目はzfsで使う。
Vagrantfile
# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "freebsd/FreeBSD-12.0-RELEASE" config.vm.synced_folder ".", "/vagrant", type: "rsync", rsync__exclude: [ ".git/" ] config.vm.boot_timeout = 600 config.ssh.shell = "sh" # node5 : メインマシン config.vm.define "node5" do |machine| machine.vm.hostname="node5.area54.local" machine.vm.network "private_network", ip: "192.168.54.15", private_network: "intnet" machine.vm.provider "virtualbox" do |vb| vb.customize ["modifyvm", :id, "--memory", "7500"] vb.customize ["modifyvm", :id, "--cpus", "3"] # add storage /dev/ada1 file_to_disk = "../vagranthdd/59-freebsd120-ada1.vdi" unless File.exist?(file_to_disk) vb.customize ['createhd', '--filename', file_to_disk, '--size', 300 * 1024, '--format', 'VDI'] # 300GB # --discard end vb.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 0, '--device', 1, '--type', 'hdd', '--medium', file_to_disk] # add storage /dev/ada2 file_to_disk = "../vagranthdd/59-freebsd120-ada2.vmdk" unless File.exist?(file_to_disk) vb.customize ['createhd', '--filename', file_to_disk, '--size', 100 * 1024, '--format', 'VMDK'] # 100GB end vb.customize ['storageattach', :id, '--storagectl', 'IDE Controller', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', file_to_disk] end # PROXY設定を環境変数PROXY_SERV_PORT,PROXY_USER,PROXY_PASSから読み込んでVM側に持ち込む # https://qiita.com/hakomikan/items/860bb960699889849933 Vagrantfile をコミットするために - Qiita machine.vm.provision "export env", type: "shell", run: "always", privileged: true, inline: <<-SHELL mkdir -p /etc/profile.d echo "# vagrant script for every boot" > /etc/profile.d/vagrant.sh echo export PROXY_SERV_PORT=#{ENV['PROXY_SERV_PORT']} >> /etc/profile.d/vagrant.sh echo export PROXY_USER=#{ENV['PROXY_USER']} >> /etc/profile.d/vagrant.sh echo export PROXY_PASS=#{ENV['PROXY_PASS']} >> /etc/profile.d/vagrant.sh echo export PROXY_SKIP=#{ENV['PROXY_SKIP']} >> /etc/profile.d/vagrant.sh echo export http_proxy=#{ENV['http_proxy']} >> /etc/profile.d/vagrant.sh echo export https_proxy=#{ENV['https_proxy']} >> /etc/profile.d/vagrant.sh echo export no_proxy=#{ENV['no_proxy']} >> /etc/profile.d/vagrant.sh echo export FROM_ORESRV=#{ENV['FROM_ORESRV']} >> /etc/profile.d/vagrant.sh echo export FROM_OREAWS=#{ENV['FROM_OREAWS']} >> /etc/profile.d/vagrant.sh chmod +x /etc/profile.d/vagrant.sh SHELL # shell provisioner machine.vm.provision "shell", path: "setupscripts.sh" end end
setupscripts.sh
#!/bin/sh set -e f_log() { echo "■ $(date) $@" } f_log "bashインストール" pkg install -y bash f_log "ansibleインストール ansible-playbook-2.7" pkg install -y py27-ansible # ufsでディスクをフォーマット if true ; then if [ ! -d /newdisk ]; then f_log "fpart ada1 チェック" if gpart show ada1 | grep freebsd-ufs ; then f_log "gpart ada1 パーティション設定済み" else f_log "gpartディスク追加 ada1" # GPTを作成 gpart create -s GPT ada1 gpart show ada1 # ada1のほぼ全部をfreebsd-ufsで確保する gpart add -t freebsd-ufs -a 1M ada1 gpart show ada1 # ファイルシステムを作る newfs -U /dev/ada1p1 fi # マウントポイント作成 mkdir /newdisk # fstabに追記 echo "/dev/ada1p1 /newdisk ufs rw 2 2" >> /etc/fstab # マウント実行 mount /newdisk df -h fi fi # zfsとして使用 if true ; then if [ ! -d /zpool/rsync ]; then # zfs 有効化 echo 'zfs_enable="YES"' >> /etc/rc.conf service zfs start # zpoolで1台のディスク ada2 全体を使用する echo "zpool create zpool /dev/ada2" zpool create zpool /dev/ada2 df -k zfs create zpool/vm fi fi f_log "ansible初期実行。ローカルホスト向け" cd /vagrant ansible-playbook-2.7 --inventory playbooks/inventories/develop playbooks/single_role_initial_local_task.yaml f_log "ansible実行。ローカルホスト向け。ユーザー追加。" cd /vagrant ansible-playbook-2.7 --inventory playbooks/inventories/develop playbooks/single_role_add_user_george.yaml f_log "apacheインストール" cd /vagrant ansible-playbook-2.7 --inventory playbooks/inventories/develop playbooks/single_role_apache.yaml f_log "utilsインストール" cd /vagrant ansible-playbook-2.7 --inventory playbooks/inventories/develop playbooks/single_role_utils.yaml f_log "セットアップ完了" exit 0
仮想マシンが起動したら、vagrant sshでログイン。
# zfs作成。 zfs create /zpool/test mkdir /zpool/test/hoge
でもって、zfsの上ででかい(600MB程度)ファイルのダウンロードを開始する。
[root@node5 /home/vagrant]# cd /zpool/test/hoge/ [root@node5 /zpool/test/hoge]# [root@node5 /zpool/test/hoge]# fetch https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz 55% of 595 MB 1286 kBps 01m24s
すると、以下のエラーが出てVMが止まる;;
9,035bytes
うーん。VirtualBoxのディスクの自動拡張に失敗するのかな?
ちなみに、ufsの方で同じことをすると成功する。
[root@node5 /newdisk/hoge/test]# [root@node5 /newdisk/hoge/test]# fetch https://download.freebsd.org/ftp/releases/amd64/amd64/ISO-IMAGES/12.0/FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz FreeBSD-12.0-RELEASE-amd64-disc1.iso.xz 595 MB 2989 kBps 03m24s [root@node5 /newdisk/hoge/test]#
不思議なこともあるものだ。
今回はメイン機、サブ機共にアップデートできた。
1903に上げた後は、1903用のパッチを適用するまでvagrantは起動しない方が良さそう。
1903アップデート直後にvagrantを起動すると、例のネットワークアダプターが見えなくなる現象が発生するが、パッチ適用後は普通に動作する。
震度6強はなかなか・・・関東の方まで揺れが伝わってきたぜ
金曜日の午前6時ごろ関東地方に来る模様。
今の予報のコースだと、江戸川放水路に南南西の風は吹きこまないので、明日は京葉線は止まらない方に10ガバス賭ける。
p.s.
結局ちょっと雨が降ったくらいだった。
長机で狭そうにしてる首脳の絵がひどいw
3,895,954bytes
これ、GDPで言えば世界のトップ 1, 2, 3 が座ってて、合計すると全世界の GDP の 50% を占める長机なんだぜ...。
1,797,153bytes
プーチンさんも狭そうにしてる。
p.s.
絵面が凄くて内容が頭に入らないけど、情報の売り買いとか、電子商取引の国際ルールを作ろうって話をしようとしてたらしい。
首脳陣みんな早く帰りたいって顔してたから、上手くいってないと思うけどw
p.p.s.
誰も言ってないけど通称は大阪トラック。トラックはトラッキング(追跡)の意味だと思う。
ここでは各国で議論を開始することを合意する、ってことだけで、ルールの内容はこれから決めるらしい。