SlideShare a Scribd company logo
1 of 11
Download to read offline
1
NetBSD on Google Compute Engine
2016-02-13
Ryo ONODERA
<ryo_on@yk.rim.or.jp>
<ryoon@NetBSD.org>
2
NetBSD とは ?
➢ BSD (Berkeley System Distribution) の系統のオペレーティング
システムの一つ。
➢
多くのアーキテクチャーに移植されているのが特徴。
➢ Alpha, ARM, MIPS, PowerPC, m68k, 32/64-bit Sparc, SuperH, x86, x86_64, VAX
➢ OrenRISC 1000, RISC-V, 64-bit ARM とかもあるが…
➢ x86_64 アーキテクチャーで動くものは、 NetBSD/amd64 と呼ば
れている。
3
Google Compute Engine とは ?
➢Google の提供する Google Cloud Platform の一つ。
➢IaaS (Infrastructure as a Service) 。
➢VirtIO による準仮想化された仮想マシンが提供されます。
➢VirtIO に対応していないオペレーティングシステムは動かせないっぽい。
➢
つまり、「遅くて良いので完全仮想化を使う」のは無理。
➢300 ドルまたは 60 日間の無料体験が可能 (2016-01-10 現在 ) 。
➢
標準では、各種 Linux distribution と Windows Server のイメージ
が提供されています。
4
NetBSD と Google Compute Engine
➢vioscsi(4) と言うのが NetBSD current にコミットされ
た。 Google Compute Engine にはこれが必須でした。
➢FreeBSD では、 virtio_scsi(4) がこれに相当するように思います。
10.0 以降含まれているようです。
5
Google Cloud SDK の導入と設定
➢pkgsrc/net/py-google-cloud-sdk から Google Cloud SDK をイン
ストールします。これは Python スクリプトです。
➢
私は Python 2.7.11 で実行しました。
➢
ウェブブラウザーをインストールします。
➢
私は Firefox 43.0.4 を使いました。 pkgsrc/www/firefox からインストールでき
ます。 Webkit ベースなものでも良いはずですが試してはいません。
➢/usr/pkg/py27-google-cloud-sdk/bin/gcloud auth login を実行し
ます。
➢Firefox が立ち上がり、ユーザー認証の後、紐付けされます。
6
プロジェクトの作成とディスクイメージの準備
➢
gcloud config set project netbsd-79925 のようにしてプロジェクトを作
ります。
➢
https://cloud.google.com/compute/docs/quickstart が参考になります。インスタン
スは立ち上げる必要はありません。
➢
NetBSD/amd64 current のディスクイメージを用意します。
➢
cd /usr/src && ./build.sh release && ./build.sh live-image のようにすると、 NetBSD-
7.99.25-amd64-live-sd0root.img が生成されます。
➢
./build.sh live-image は、 gzip されたものを最終的に生成しますが、再度展開するのは面倒なので、中
間生成物を使います。
➢
NetBSD-7.99.24-amd64-live-wd0boot.img というのも作られますが、こちらは root ファイルシステム
が wd0 なので使えません。
➢
これを作業ディレクトリーに disk.raw と言うファイル名でコピーして
きます。
7
ディスクイメージの調製
➢
sudo vnconfig vnd0 disk.raw を実行して、 /dev/vnd0 に disk.raw を割り当てま
す。
➢
sudo mount /dev/vnd0 /mnt && sudo chroot /mnt /bin/sh としてディスクイ
メージの中身を調整します。
➢
vioif0 で DHCP クライアントとして働くようにする。
➢
/etc/rc.conf に ifconfig_vioif0=dhcp を追加する。
➢
ユーザーを追加して、 ssh 公開鍵を配置する。
➢
sshd が自動的に起動するようにする。
➢/etc/rc.conf に sshd=yes を追加する。
➢
sudo umount /mnt && sudo installboot -e -o console=com0 /dev/rvnd0a を実
行して、シリアルコンソールに起動メッセージを出すように設定します。
➢
tar -Sczf netbsd79925.tar.gz disk.raw を実行して、ディスクイメージの雛形を
作成します。
8
ディスクイメージのアップロードと仮想マシンの作成
➢
Google Cloud Storage またはhttps な場所にnetbsd79925.tar.gz を置きます。
➢
Google Cloud Storage には gsutil コマンドでもウェブインターフェイスからでもアップロードできます。
➢
gsutil cp netbsd79925.tar.gz gs://netbsd-compute-engine/netbsd79925.tar.gz
➢
Google Cloud Storage に置いた場合には、gcloud compute images create netbsd79925
--source-uri gs://netbsd-compute-engine/netbsd79925.tar.gz のようにし仮想マシン生成
用イメージを作成します。
➢
netbsd79925 イメージをベースに仮想マシンを作成し起動させます。
➢
gcloud compute instances create instance-1 --image netbsd79925 --zone us-east1-b --machine-type f1-micro
➢
自動的に起動します。
➢
gcloud compute instances get-serial-port-output instance-1 --zone us-east1-b のように
して、ブートメッセージを得ることができます。ウェブインターフェイスからもダウンロー
ドできます。
➢
しかし、シリアルコンソール経由で操作をすることはできません。 ssh 経由で操作しないといけません。
9
起動メッセージ (1/2)
(snip)
pci0 at mainbus0 bus 0: configuration mode 1
pcib0 at pci0 dev 1 function 0: vendor 8086 product 7110 (rev. 0x03)
piixpm0 at pci0 dev 1 function 3: vendor 8086 product 7113 (rev. 0x03)
piixpm0: SMBus disabled
virtio0 at pci0 dev 3 function 0
virtio0: Virtio SCSI Device (rev. 0x00)
vioscsi0 at virtio0: Features: 0x0
vioscsi0: qsize 8192
scsibus0 at vioscsi0: 253 targets, 1 lun per target
virtio0: interrupting at ioapic0 pin 11
virtio1 at pci0 dev 4 function 0
virtio1: Virtio Network Device (rev. 0x00)
vioif0 at virtio1: Ethernet address 42:01:0a:f0:00:02
vioif0: Features: 0x30020<CTRL_VQ,STATUS,MAC>
virtio1: interrupting at ioapic0 pin 11
isa0 at pcib0
10
起動メッセージ (2/2)
com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo
com0: console
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
attimer0 at isa0 port 0x40-0x43
pcppi0 at isa0 port 0x61
midi0 at pcppi0: PC speaker
sysbeep0 at pcppi0
attimer0: attached to pcppi0
acpicpu0 at cpu0: ACPI CPU
sd0 at scsibus0 target 2 lun 0: <Google, PersistentDisk, 1> disk fixed
sd0: fabricating a geometry
sd0: 2048 MB, 2048 cyl, 64 head, 32 sec, 512 bytes/sect x 4194304 sectors
sd0: fabricating a geometry
(snip)
11
おわり
https://creativecommons.org/licenses/by/4.0/
Copyright (c) 2016 Ryo ONODERA
CreativeCommons Attribution 4.0 International (CC BY 4.0)

More Related Content

What's hot

Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Etsuji Nakai
 
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタDRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ株式会社サードウェア
 
BHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorBHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorTakuya ASADA
 
Cocos2d xゲームでuiテスト自動化
Cocos2d xゲームでuiテスト自動化Cocos2d xゲームでuiテスト自動化
Cocos2d xゲームでuiテスト自動化Naoyuki Totani
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code readingTakuya ASADA
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定Takashi Naito
 
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)Yuichiro Saito
 
Meetup 2104 my_homenutanixce_mizuta
Meetup 2104 my_homenutanixce_mizutaMeetup 2104 my_homenutanixce_mizuta
Meetup 2104 my_homenutanixce_mizutaYusuke Mizuta
 
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)株式会社サードウェア
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)Takeshi HASEGAWA
 
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ- 100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ- Naoto MATSUMOTO
 
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料zgock
 
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08tokuhy
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)Takeshi HASEGAWA
 
Routerboard勉強会 tips
Routerboard勉強会 tipsRouterboard勉強会 tips
Routerboard勉強会 tipskometch H
 

What's hot (20)

Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!Lxc で始めるケチケチ仮想化生活?!
Lxc で始めるケチケチ仮想化生活?!
 
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタDRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
DRBD/Heartbeat/Pacemakerで作るKVM仮想化クラスタ
 
Bhyve Internals
Bhyve InternalsBhyve Internals
Bhyve Internals
 
BHyVe: The BSD Hypervisor
BHyVe: The BSD HypervisorBHyVe: The BSD Hypervisor
BHyVe: The BSD Hypervisor
 
Cocos2d xゲームでuiテスト自動化
Cocos2d xゲームでuiテスト自動化Cocos2d xゲームでuiテスト自動化
Cocos2d xゲームでuiテスト自動化
 
Bhyve code reading
Bhyve code readingBhyve code reading
Bhyve code reading
 
仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定仮想スイッチをフェイルオーバーさせてみる予定
仮想スイッチをフェイルオーバーさせてみる予定
 
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
VMwareで手っ取り早く社内システムをHAサーバ化してみました (bpstudy#38)
 
Meetup 2104 my_homenutanixce_mizuta
Meetup 2104 my_homenutanixce_mizutaMeetup 2104 my_homenutanixce_mizuta
Meetup 2104 my_homenutanixce_mizuta
 
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
KVM Cluster with DRBD, ioDrive2 and Infiniband (130802 OSC京都)
 
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
エンジニアなら知っておきたい「仮想マシン」のしくみ v1.1 (hbstudy 17)
 
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ- 100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
100GbE NICを使ったデータセンター・ネットワーク実証実験 -メモ-
 
軽快なBHyVe
軽快なBHyVe軽快なBHyVe
軽快なBHyVe
 
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
openSUSEで最強仮想環境をつくろう - ゲーミングから仮想通貨まで - OSC名古屋2017セミナー資料
 
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08COMSTARでiSCSI - OpenSolaris勉強会 2011.08
COMSTARでiSCSI - OpenSolaris勉強会 2011.08
 
Packerで自動化
Packerで自動化Packerで自動化
Packerで自動化
 
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
エンジニアなら知っておきたい「仮想マシン」のしくみ (BPStudy38)
 
20180330 ガチラボ
20180330 ガチラボ20180330 ガチラボ
20180330 ガチラボ
 
vmware-meetup7
vmware-meetup7vmware-meetup7
vmware-meetup7
 
Routerboard勉強会 tips
Routerboard勉強会 tipsRouterboard勉強会 tips
Routerboard勉強会 tips
 

Similar to NetBSD on Google Compute Engine

NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成Izumi Tsutsui
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築yaegashi
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらTakuma Nakajima
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vbYohichiShiina
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストールYasuhiro Arai
 
CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-toolNaruto TAKAHASHI
 
Linux でavr開発環境を構築する+mbed(20100612koedo94)
Linux でavr開発環境を構築する+mbed(20100612koedo94)Linux でavr開発環境を構築する+mbed(20100612koedo94)
Linux でavr開発環境を構築する+mbed(20100612koedo94)Kenichiro MATOHARA
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれDNA Data Bank of Japan center
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPUTakuro Iizuka
 
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだSCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだwind06106
 
もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順Hide Koba
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Etsuji Nakai
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)NTT DATA Technology & Innovation
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKensuke Maeda
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Masahito Zembutsu
 
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugJAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugYasuhiro Matsuo
 
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Taira Hajime
 

Similar to NetBSD on Google Compute Engine (20)

NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
NetBSDのクロスビルドのしくみとインストール済みLive Imageの作成
 
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
JTF2020 クロスコンパイルだけが能ではない組み込みLinuxシステムのCI/CDインフラ構築
 
もしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったらもしCloudStackのKVMホストでPCIパススルーできるようになったら
もしCloudStackのKVMホストでPCIパススルーできるようになったら
 
20210515 cae linux_install_vb
20210515 cae linux_install_vb20210515 cae linux_install_vb
20210515 cae linux_install_vb
 
Apache cloudstack4.0インストール
Apache cloudstack4.0インストールApache cloudstack4.0インストール
Apache cloudstack4.0インストール
 
CMake multiplatform build-tool
CMake multiplatform build-toolCMake multiplatform build-tool
CMake multiplatform build-tool
 
Linux でavr開発環境を構築する+mbed(20100612koedo94)
Linux でavr開発環境を構築する+mbed(20100612koedo94)Linux でavr開発環境を構築する+mbed(20100612koedo94)
Linux でavr開発環境を構築する+mbed(20100612koedo94)
 
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれNGS解析を始めた時にぶつかりがちな小さい壁あれこれ
NGS解析を始めた時にぶつかりがちな小さい壁あれこれ
 
20150630_MySQL勉強会
20150630_MySQL勉強会20150630_MySQL勉強会
20150630_MySQL勉強会
 
関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU関東GPGPU勉強会 LLVM meets GPU
関東GPGPU勉強会 LLVM meets GPU
 
SCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだSCUGJ第18回勉強会:よろしい、ならばVMMだ
SCUGJ第18回勉強会:よろしい、ならばVMMだ
 
もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順もろもろの AI ツールを Windows のローカル環境にインストールする手順
もろもろの AI ツールを Windows のローカル環境にインストールする手順
 
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
Okinawa Open Days 2014 OpenStackハンズオンセミナー / OpenStackの機能概要
 
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
Postgres Playground で pgbench を走らせよう!(第35回PostgreSQLアンカンファレンス@オンライン 発表資料)
 
Hbstudy41 auto scaling
Hbstudy41 auto scalingHbstudy41 auto scaling
Hbstudy41 auto scaling
 
Osc2009 Do Xen Hara
Osc2009 Do Xen HaraOsc2009 Do Xen Hara
Osc2009 Do Xen Hara
 
Kibanaでsysstatを可視化する
Kibanaでsysstatを可視化するKibanaでsysstatを可視化する
Kibanaでsysstatを可視化する
 
Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話Docker ComposeでMastodonが必要なものを梱包する話
Docker ComposeでMastodonが必要なものを梱包する話
 
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsugJAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
JAWS目黒 EC2チューニングTips #jawsmeguro #jawsug
 
Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向Linux KVM環境におけるGPGPU活用最新動向
Linux KVM環境におけるGPGPU活用最新動向
 

More from Ryo ONODERA

helloSystemをインストール
helloSystemをインストールhelloSystemをインストール
helloSystemをインストールRyo ONODERA
 
NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)Ryo ONODERA
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題Ryo ONODERA
 
pkgsrcユーザー向け設定
pkgsrcユーザー向け設定pkgsrcユーザー向け設定
pkgsrcユーザー向け設定Ryo ONODERA
 
How to package github softwares
How to package github softwaresHow to package github softwares
How to package github softwaresRyo ONODERA
 
FreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSFreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSRyo ONODERA
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoonRyo ONODERA
 
LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)Ryo ONODERA
 
LibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcLibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcRyo ONODERA
 

More from Ryo ONODERA (9)

helloSystemをインストール
helloSystemをインストールhelloSystemをインストール
helloSystemをインストール
 
NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)NetBSD on Google Compute Engine (en)
NetBSD on Google Compute Engine (en)
 
自分的pkgsrcの課題
自分的pkgsrcの課題自分的pkgsrcの課題
自分的pkgsrcの課題
 
pkgsrcユーザー向け設定
pkgsrcユーザー向け設定pkgsrcユーザー向け設定
pkgsrcユーザー向け設定
 
How to package github softwares
How to package github softwaresHow to package github softwares
How to package github softwares
 
FreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPSFreeBSD under DigitalOcean VPS
FreeBSD under DigitalOcean VPS
 
140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon140607 lib o-mini_con-ryoon
140607 lib o-mini_con-ryoon
 
LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)LibreOffice 4 under NetBSD with pkgsrc (en)
LibreOffice 4 under NetBSD with pkgsrc (en)
 
LibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrcLibreOffice 4 under NetBSD with pkgsrc
LibreOffice 4 under NetBSD with pkgsrc
 

NetBSD on Google Compute Engine

  • 1. 1 NetBSD on Google Compute Engine 2016-02-13 Ryo ONODERA <ryo_on@yk.rim.or.jp> <ryoon@NetBSD.org>
  • 2. 2 NetBSD とは ? ➢ BSD (Berkeley System Distribution) の系統のオペレーティング システムの一つ。 ➢ 多くのアーキテクチャーに移植されているのが特徴。 ➢ Alpha, ARM, MIPS, PowerPC, m68k, 32/64-bit Sparc, SuperH, x86, x86_64, VAX ➢ OrenRISC 1000, RISC-V, 64-bit ARM とかもあるが… ➢ x86_64 アーキテクチャーで動くものは、 NetBSD/amd64 と呼ば れている。
  • 3. 3 Google Compute Engine とは ? ➢Google の提供する Google Cloud Platform の一つ。 ➢IaaS (Infrastructure as a Service) 。 ➢VirtIO による準仮想化された仮想マシンが提供されます。 ➢VirtIO に対応していないオペレーティングシステムは動かせないっぽい。 ➢ つまり、「遅くて良いので完全仮想化を使う」のは無理。 ➢300 ドルまたは 60 日間の無料体験が可能 (2016-01-10 現在 ) 。 ➢ 標準では、各種 Linux distribution と Windows Server のイメージ が提供されています。
  • 4. 4 NetBSD と Google Compute Engine ➢vioscsi(4) と言うのが NetBSD current にコミットされ た。 Google Compute Engine にはこれが必須でした。 ➢FreeBSD では、 virtio_scsi(4) がこれに相当するように思います。 10.0 以降含まれているようです。
  • 5. 5 Google Cloud SDK の導入と設定 ➢pkgsrc/net/py-google-cloud-sdk から Google Cloud SDK をイン ストールします。これは Python スクリプトです。 ➢ 私は Python 2.7.11 で実行しました。 ➢ ウェブブラウザーをインストールします。 ➢ 私は Firefox 43.0.4 を使いました。 pkgsrc/www/firefox からインストールでき ます。 Webkit ベースなものでも良いはずですが試してはいません。 ➢/usr/pkg/py27-google-cloud-sdk/bin/gcloud auth login を実行し ます。 ➢Firefox が立ち上がり、ユーザー認証の後、紐付けされます。
  • 6. 6 プロジェクトの作成とディスクイメージの準備 ➢ gcloud config set project netbsd-79925 のようにしてプロジェクトを作 ります。 ➢ https://cloud.google.com/compute/docs/quickstart が参考になります。インスタン スは立ち上げる必要はありません。 ➢ NetBSD/amd64 current のディスクイメージを用意します。 ➢ cd /usr/src && ./build.sh release && ./build.sh live-image のようにすると、 NetBSD- 7.99.25-amd64-live-sd0root.img が生成されます。 ➢ ./build.sh live-image は、 gzip されたものを最終的に生成しますが、再度展開するのは面倒なので、中 間生成物を使います。 ➢ NetBSD-7.99.24-amd64-live-wd0boot.img というのも作られますが、こちらは root ファイルシステム が wd0 なので使えません。 ➢ これを作業ディレクトリーに disk.raw と言うファイル名でコピーして きます。
  • 7. 7 ディスクイメージの調製 ➢ sudo vnconfig vnd0 disk.raw を実行して、 /dev/vnd0 に disk.raw を割り当てま す。 ➢ sudo mount /dev/vnd0 /mnt && sudo chroot /mnt /bin/sh としてディスクイ メージの中身を調整します。 ➢ vioif0 で DHCP クライアントとして働くようにする。 ➢ /etc/rc.conf に ifconfig_vioif0=dhcp を追加する。 ➢ ユーザーを追加して、 ssh 公開鍵を配置する。 ➢ sshd が自動的に起動するようにする。 ➢/etc/rc.conf に sshd=yes を追加する。 ➢ sudo umount /mnt && sudo installboot -e -o console=com0 /dev/rvnd0a を実 行して、シリアルコンソールに起動メッセージを出すように設定します。 ➢ tar -Sczf netbsd79925.tar.gz disk.raw を実行して、ディスクイメージの雛形を 作成します。
  • 8. 8 ディスクイメージのアップロードと仮想マシンの作成 ➢ Google Cloud Storage またはhttps な場所にnetbsd79925.tar.gz を置きます。 ➢ Google Cloud Storage には gsutil コマンドでもウェブインターフェイスからでもアップロードできます。 ➢ gsutil cp netbsd79925.tar.gz gs://netbsd-compute-engine/netbsd79925.tar.gz ➢ Google Cloud Storage に置いた場合には、gcloud compute images create netbsd79925 --source-uri gs://netbsd-compute-engine/netbsd79925.tar.gz のようにし仮想マシン生成 用イメージを作成します。 ➢ netbsd79925 イメージをベースに仮想マシンを作成し起動させます。 ➢ gcloud compute instances create instance-1 --image netbsd79925 --zone us-east1-b --machine-type f1-micro ➢ 自動的に起動します。 ➢ gcloud compute instances get-serial-port-output instance-1 --zone us-east1-b のように して、ブートメッセージを得ることができます。ウェブインターフェイスからもダウンロー ドできます。 ➢ しかし、シリアルコンソール経由で操作をすることはできません。 ssh 経由で操作しないといけません。
  • 9. 9 起動メッセージ (1/2) (snip) pci0 at mainbus0 bus 0: configuration mode 1 pcib0 at pci0 dev 1 function 0: vendor 8086 product 7110 (rev. 0x03) piixpm0 at pci0 dev 1 function 3: vendor 8086 product 7113 (rev. 0x03) piixpm0: SMBus disabled virtio0 at pci0 dev 3 function 0 virtio0: Virtio SCSI Device (rev. 0x00) vioscsi0 at virtio0: Features: 0x0 vioscsi0: qsize 8192 scsibus0 at vioscsi0: 253 targets, 1 lun per target virtio0: interrupting at ioapic0 pin 11 virtio1 at pci0 dev 4 function 0 virtio1: Virtio Network Device (rev. 0x00) vioif0 at virtio1: Ethernet address 42:01:0a:f0:00:02 vioif0: Features: 0x30020<CTRL_VQ,STATUS,MAC> virtio1: interrupting at ioapic0 pin 11 isa0 at pcib0
  • 10. 10 起動メッセージ (2/2) com0 at isa0 port 0x3f8-0x3ff irq 4: ns16550a, working fifo com0: console com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo attimer0 at isa0 port 0x40-0x43 pcppi0 at isa0 port 0x61 midi0 at pcppi0: PC speaker sysbeep0 at pcppi0 attimer0: attached to pcppi0 acpicpu0 at cpu0: ACPI CPU sd0 at scsibus0 target 2 lun 0: <Google, PersistentDisk, 1> disk fixed sd0: fabricating a geometry sd0: 2048 MB, 2048 cyl, 64 head, 32 sec, 512 bytes/sect x 4194304 sectors sd0: fabricating a geometry (snip)
  • 11. 11 おわり https://creativecommons.org/licenses/by/4.0/ Copyright (c) 2016 Ryo ONODERA CreativeCommons Attribution 4.0 International (CC BY 4.0)