SlideShare ist ein Scribd-Unternehmen logo
1 von 18
Network Boot Raspberry Pi
with Overlay File System
CAMPHOR- DAY 2019
自己紹介
巻田 光起
京都大学工学部情報学科 3 年生
2019 年 1 月から CAMPHOR- の運営メンバー
Twitter: @km_conner
GitHub: KMConner
今日の内容
Network Boot で Raspberry Pi を起動させる (SD 不要!)
+
Network Boot に使用するサーバー上のファイルを Overlay
File System を使って管理する
Network Boot とは?
大まかなブートの流れ
電源の投入
ブートローダーの読み込み
カーネルのロード・起動
ファイルシステムのマウント
…
主に使用するプロトコル
DHCP
コンピューターのネットワーク設定を自動的に行うプロトコル
TFTP
コンピューター間でファイルを転送する軽量なプロトコル
NFS
ネットワークを介してストレージをリモートコンピューターに提供する
ファイルシステムとそのプロトコル
大まかなブートの流れ (再掲)
電源の投入
ブートローダーの読み込み
カーネルのロード・起動
ファイルシステムのマウント
…
ブートローダーはどこから?
DHCP (ブートローダーの場所)
TFTP でダウンロード
サーバー Raspberry Pi
大まかなブートの流れ (再掲)
電源の投入
ブートローダーの読み込み
カーネルのロード・起動
ファイルシステムのマウント
…
ファイルはどこへ?
ルートディレクトリを
NFS マウント
サーバー Raspberry Pi
Network Boot ができるまで
• NFS の設定 (SD の中身を丸ごとコピー)
• TFTP の設定 (SD の /boot の中身を TFTP でExport)
• DHCP の設定
詳細は Document を参照!
https://www.raspberrypi.org/documentation/hardware/raspberrypi/bootmodes/net_tutorial.md
Raspberry Pi で Network boot
• SD カードよりも耐久性が高い
• 複数の起動イメージを切り替えられる
• 簡単にバックアップできる
• ディスクアクセスがやや遅い
• 常に有線 LAN のネットワーク接続が必要
Overlay File System で
差分管理
Overlay File System とは?
Lower Dir 2
Lower Dir 1
Upper Dir
Overlay
File2
File1 File2 File3
File3
File1 File3
複数のディレクトリを層状に重ねて 1 つに見せる!
Read Only
Read/Write
Overlay FS で差分バックアップ!
マウントしたものを
NFS Export !Version 0
Version 1
Version 2 (Client
1)
Version 2 (Client
2)
Upper
Lower
Version 1 (Client
3)
Overlay FSを使用する際の手順
mount -t overlay overlay –o
lowerdir=./lower,upperdir=./upper,workdir=./work,nfs_export=on,index=on ./merg
ed
Linux カーネル Ver 4.16 以降が必要!
まとめ
Network Boot & Overlay FS はいいぞ!
• 複数台のセットアップを一度で
• 複数の起動イメージを切り替えられる
• 好きなバージョンにロールバック

Weitere ähnliche Inhalte

Was ist angesagt?

ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
Takayuki Shimizukawa
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
Takashi Takizawa
 

Was ist angesagt? (20)

Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門#logstudy 01 rsyslog入門
#logstudy 01 rsyslog入門
 
Apache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once SemanticsApache Kafka 0.11 の Exactly Once Semantics
Apache Kafka 0.11 の Exactly Once Semantics
 
Spring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシングSpring CloudとZipkinを利用した分散トレーシング
Spring CloudとZipkinを利用した分散トレーシング
 
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
 
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
そろそろ知っておきたい!!コンテナ技術とDockerのキホンそろそろ知っておきたい!!コンテナ技術とDockerのキホン
そろそろ知っておきたい!!コンテナ技術と Dockerのキホン
 
Molecule入門
Molecule入門Molecule入門
Molecule入門
 
Azure サポート チームの現場からお届けする落ちないサービスのために
Azure サポート チームの現場からお届けする落ちないサービスのためにAzure サポート チームの現場からお届けする落ちないサービスのために
Azure サポート チームの現場からお届けする落ちないサービスのために
 
マイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチマイクロサービス 4つの分割アプローチ
マイクロサービス 4つの分割アプローチ
 
[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces[Container Runtime Meetup] runc & User Namespaces
[Container Runtime Meetup] runc & User Namespaces
 
Paxos
PaxosPaxos
Paxos
 
Prometheus at Preferred Networks
Prometheus at Preferred NetworksPrometheus at Preferred Networks
Prometheus at Preferred Networks
 
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
エンジニアのためのOSSライセンス管理~OSS管理ツールの池の水全部抜く~
 
GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出GitLab から GitLab に移行したときの思い出
GitLab から GitLab に移行したときの思い出
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
ドキュメンテーションを加速するストレスフリーの作図ツール『blockdiag』 jus2011年6月勉強会
 
DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容DeNAの最新のマスタデータ管理システム Oyakata の全容
DeNAの最新のマスタデータ管理システム Oyakata の全容
 
単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介単なるキャッシュじゃないよ!?infinispanの紹介
単なるキャッシュじゃないよ!?infinispanの紹介
 
initとプロセス再起動
initとプロセス再起動initとプロセス再起動
initとプロセス再起動
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 

Ähnlich wie OverlayFS を使って Raspberry Pi を Network Bootする

Lesson01
Lesson01Lesson01
Lesson01
MRI
 
PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)
stibear (stibear1996)
 
150629 02
150629 02150629 02
150629 02
openrtm
 

Ähnlich wie OverlayFS を使って Raspberry Pi を Network Bootする (20)

Lesson01
Lesson01Lesson01
Lesson01
 
PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワーク
 
rpi_handson_2
rpi_handson_2rpi_handson_2
rpi_handson_2
 
Infinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every secondInfinite Debian - Platform for mass-producing system every second
Infinite Debian - Platform for mass-producing system every second
 
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
 
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web serviceYAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
 
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
 
Fabric
Fabric Fabric
Fabric
 
データセンターネットワークの構成について
データセンターネットワークの構成についてデータセンターネットワークの構成について
データセンターネットワークの構成について
 
150629 02
150629 02150629 02
150629 02
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料
 
Fab
FabFab
Fab
 
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
 

OverlayFS を使って Raspberry Pi を Network Bootする

Hinweis der Redaktion

  1. 京都大学3回 今年から CAMPHOR- の運営
  2. ここまで 0:20-0:30 話すこと Raspberry Pi でネットブート ファイルの管理に Overlay FS をサーバー側で使う
  3. ここまでで 1:00 程度 そもそも、ネットブートとはなにか? これは Raspberry Pi が起動する際のかなり大まかな処理の順序。 電源が入ると最初にブートローダー読み込む。 ブートローダーによって、カーネルがロードされる。 そのあとは様々な処理が入るが、今回重要になってくるのはファイルシステムのマウント。他に関しては省略! で、赤枠の部分がネットブートの場合は大きく違っている!
  4. ここまでで 1:30 程度 Network Boot において重要になってくるプロトコルの紹介。 DHCP は自動的に IP アドレス、 NDS のアドレスなどのネットワークの設定を行うプロトコル TFTP はネットワーク的な距離が近いコンピューターとの間で比較的小さなファイルを転送するのに適したプロトコル NFS はネットワーク越しのコンピューターのファイルにアクセスするためのファイルシステムと、そのプロトコル。 マウントすればローカルと同じようにアクセスできる
  5. ブートローダーの読み込みに関して、
  6. ブートローダーは普通は SD カードの boot ボリュームに格納されている。 が、ネットブートする際には クライアントの端末が DHCP のリクエストを出す サーバーがクライアント IP と一緒に TFTP サーバーの IP, ファイルのパスを通知する のフローでブートローダーの場所を把握し、そのパスから TFTP で DL する
  7. ファイルシステムのマウントに関して話す。
  8. ここまで 2:30 程度 ファイルも、通常は SD 上にある。 サーバー上のファイルを、NFS で export してルートディレクトリにマウントする。 サーバー、パスなどの設定はブートローダと一緒にある設定ファイルに記述。
  9. 特徴は、ファイルを全てサーバー上においてそこから Boot する! これまでのアイデアを使えば Net Boot ができる! Network Boot の設定を行う大まかな手順 NFS のセットアップ – SD の中身をそのままコピー、パーミッションに注意! TFTP の設定 - /boot をそのまま DHCP – ブートがらみの設定を 詳細は Document を参照、かなり丁寧に書いてある!
  10. ここまで 4:30-5:00 実際に Network Boot するときはのメリット、デメリットに関して、 メリットとして HDD などの方が一般的に耐久性は高い 複数イメージの切り替えができる バックアップが簡単 (後半の話!) デメリットとして ディスクアクセスがやや遅い場合が、スループットはそこそこだが応答速度に難あり ネットワーク上のファイルを参照し続けるため、常にネットワーク接続 (有線) が必要!
  11. 「簡単にバックアップ」に関して、 Overlay FS で差分バックアップする話を後半はしていく。
  12. Overlay File System とはこの図のように、複数のディレクトリを重ねるようにマウントすることで、一つに見せる仕組みのこと。 読み込みはそのファイルがある一番上のレイヤーから 書き込みは Upper の Layer に File 4 みたいにファイルが存在する層より上の層に削除のマークが付いていればそのファイルは存在しないものとする。
  13. 先のスライドのようにレイヤーを重ねることで差分バックアップの差分をそれぞれ 1 つのディレクトリで表現できる。 Lower な層は Read Only なので、共有でき、それによって、バージョンの系列を分岐することができる。 また、下の方の層に直接 Upper Layer を置けるので、これがロールバックになる。
  14. ここまで 7:00 程度 ネット上にあまり情報がなかったので実際に使用すべきコマンドを書いておく 赤字の部分が重要 Linux カーネルは 4.16 以降が必要。 (例えば Ubuntu 18.10 など)
  15. つまり、 Network Boot と Overlay File System を組み合わせるとデータ周りのメンテナンスが楽になる。 同じ設定、環境構築を一度で済ませられる 複数の起動イメージを切り替えられる。 好きなバージョンにロールバックできる。