SlideShare uma empresa Scribd logo
1 de 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 はいいぞ!
• 複数台のセットアップを一度で
• 複数の起動イメージを切り替えられる
• 好きなバージョンにロールバック

Mais conteúdo relacionado

Mais procurados

「Ansible on Azure入門」資料
「Ansible on Azure入門」資料「Ansible on Azure入門」資料
「Ansible on Azure入門」資料Hidetoshi Hirokawa
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるKohei Tokunaga
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Ken SASAKI
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGoogle Cloud Platform - Japan
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)NTT DATA Technology & Innovation
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjugYahoo!デベロッパーネットワーク
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介gree_tech
 
Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Masataka Kono
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較beyond Co., Ltd.
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Masahito Zembutsu
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理NTT DATA Technology & Innovation
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021Preferred Networks
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!Wataru NOGUCHI
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」Masahito Zembutsu
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装tnoho
 

Mais procurados (20)

「Ansible on Azure入門」資料
「Ansible on Azure入門」資料「Ansible on Azure入門」資料
「Ansible on Azure入門」資料
 
DockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐるDockerとKubernetesをかけめぐる
DockerとKubernetesをかけめぐる
 
Hadoopの概念と基本的知識
Hadoopの概念と基本的知識Hadoopの概念と基本的知識
Hadoopの概念と基本的知識
 
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps OnlineGKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
GKE に飛んでくるトラフィックを 自由自在に操る力 | 第 10 回 Google Cloud INSIDE Games & Apps Online
 
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
Apache Bigtopによるオープンなビッグデータ処理基盤の構築(オープンデベロッパーズカンファレンス 2021 Online 発表資料)
 
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug実運用して分かったRabbit MQの良いところ・気をつけること #jjug
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
 
Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介Cloud Spanner をより便利にする運用支援ツールの紹介
Cloud Spanner をより便利にする運用支援ツールの紹介
 
OpenStack Swift紹介
OpenStack Swift紹介OpenStack Swift紹介
OpenStack Swift紹介
 
KubeEdgeを触ってみた
KubeEdgeを触ってみたKubeEdgeを触ってみた
KubeEdgeを触ってみた
 
Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事Usb接続するアプリを開発した時に試行錯誤した事
Usb接続するアプリを開発した時に試行錯誤した事
 
AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較AlmaLinux と Rocky Linux の誕生経緯&比較
AlmaLinux と Rocky Linux の誕生経緯&比較
 
ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門ゼロからはじめるKVM超入門
ゼロからはじめるKVM超入門
 
Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編Dockerfile を書くためのベストプラクティス解説編
Dockerfile を書くためのベストプラクティス解説編
 
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
え、まって。その並列分散処理、Kafkaのしくみでもできるの? Apache Kafkaの機能を利用した大規模ストリームデータの並列分散処理
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 
できる!KickstartとAnsible!
できる!KickstartとAnsible!できる!KickstartとAnsible!
できる!KickstartとAnsible!
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
WebRTCを利用した遠隔リアルタイム映像処理フレームワークの実装
 
Consistent hash
Consistent hashConsistent hash
Consistent hash
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 

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

Lesson01
Lesson01Lesson01
Lesson01MRI
 
PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)stibear (stibear1996)
 
近頃のDockerネットワーク
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワークYuji Oshima
 
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 secondTaisuke Yamada
 
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化Shuichi Yukimoto
 
hpingで作るパケット
hpingで作るパケットhpingで作るパケット
hpingで作るパケットTakaaki Hoyo
 
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 serviceKazuho Oku
 
WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3mganeko
 
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築Itoshi Nikaido
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplibShinya Okano
 
Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法Shunsuke Kikuchi
 
10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化Takuya ASADA
 
データセンターネットワークの構成について
データセンターネットワークの構成についてデータセンターネットワークの構成について
データセンターネットワークの構成についてMicroAd, Inc.(Engineer)
 
150629 02
150629 02150629 02
150629 02openrtm
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?Kengo Nakajima
 
WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料Masaya Fujita
 
LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~cyberblack28 Ichikawa
 

Semelhante a 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する

Notas do Editor

  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 を組み合わせるとデータ周りのメンテナンスが楽になる。 同じ設定、環境構築を一度で済ませられる 複数の起動イメージを切り替えられる。 好きなバージョンにロールバックできる。