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

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

Recommended

Node-RED v2.0新機能紹介 by
Node-RED v2.0新機能紹介Node-RED v2.0新機能紹介
Node-RED v2.0新機能紹介Hitachi, Ltd. OSS Solution Center.
740 views26 slides
Dockerからcontainerdへの移行 by
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
7.5K views36 slides
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k... by
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...
KubeCon + CloudNativeCon Europe 2022 Recap / Kubernetes Meetup Tokyo #51 / #k...Preferred Networks
1.4K views27 slides
今話題のいろいろなコンテナランタイムを比較してみた by
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみたKohei Tokunaga
61.8K views26 slides
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介 by
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介
CEDEC 2016 Metal と Vulkan を用いた水彩画レンダリング技法の紹介Drecom Co., Ltd.
12.1K views114 slides
Unityで始めるバージョン管理 Git LFS 入門編 by
Unityで始めるバージョン管理 Git LFS 入門編Unityで始めるバージョン管理 Git LFS 入門編
Unityで始めるバージョン管理 Git LFS 入門編NAKAOKU Takahiro
9.4K views40 slides

More Related Content

What's hot

CentOS Linux 8 の EOL と対応策の検討 by
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討Masahito Zembutsu
12.9K views49 slides
KubernetesでRedisを使うときの選択肢 by
KubernetesでRedisを使うときの選択肢KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢Naoyuki Yamada
4.8K views21 slides
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub... by
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...Preferred Networks
1.3K views40 slides
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 by
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 VirtualTech Japan Inc.
8K views64 slides
HashiCorpのNomadを使ったコンテナのスケジューリング手法 by
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法Masahito Zembutsu
11.6K views36 slides
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料) by
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)NTT DATA Technology & Innovation
3.6K views31 slides

What's hot(20)

CentOS Linux 8 の EOL と対応策の検討 by Masahito Zembutsu
CentOS Linux 8 の EOL と対応策の検討CentOS Linux 8 の EOL と対応策の検討
CentOS Linux 8 の EOL と対応策の検討
Masahito Zembutsu12.9K views
KubernetesでRedisを使うときの選択肢 by Naoyuki Yamada
KubernetesでRedisを使うときの選択肢KubernetesでRedisを使うときの選択肢
KubernetesでRedisを使うときの選択肢
Naoyuki Yamada4.8K views
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub... by Preferred Networks
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
KubeCon + CloudNativeCon Europe 2022 Recap - Batch/HPCの潮流とScheduler拡張事例 / Kub...
Preferred Networks1.3K views
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 by VirtualTech Japan Inc.
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月 知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
知っているようで知らないNeutron -仮想ルータの冗長と分散- - OpenStack最新情報セミナー 2016年3月
HashiCorpのNomadを使ったコンテナのスケジューリング手法 by Masahito Zembutsu
HashiCorpのNomadを使ったコンテナのスケジューリング手法HashiCorpのNomadを使ったコンテナのスケジューリング手法
HashiCorpのNomadを使ったコンテナのスケジューリング手法
Masahito Zembutsu11.6K views
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料) by NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ... by NTT DATA Technology & Innovation
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka... by NTT DATA Technology & Innovation
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
Apache BigtopによるHadoopエコシステムのパッケージング(Open Source Conference 2021 Online/Osaka...
DCSF19 Hardening Docker daemon with Rootless mode by Docker, Inc.
DCSF19 Hardening Docker daemon with Rootless modeDCSF19 Hardening Docker daemon with Rootless mode
DCSF19 Hardening Docker daemon with Rootless mode
Docker, Inc.14.4K views
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発... by NTT DATA Technology & Innovation
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
PostgreSQL開発コミュニティに参加しよう! ~2022年版~(Open Source Conference 2022 Online/Kyoto 発...
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~ by UnityTechnologiesJapan002
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
BIMからはじまる異世界転生 ~Unity Reflect が叶える新しい建築の世界~
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現 by Yoshifumi Kawai
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Unityによるリアルタイム通信とMagicOnionによるC#大統一理論の実現
Yoshifumi Kawai4.8K views
Akkaで分散システム入門 by Shingo Omura
Akkaで分散システム入門Akkaで分散システム入門
Akkaで分散システム入門
Shingo Omura6.5K views
GPU と PYTHON と、それから最近の NVIDIA by NVIDIA Japan
GPU と PYTHON と、それから最近の NVIDIAGPU と PYTHON と、それから最近の NVIDIA
GPU と PYTHON と、それから最近の NVIDIA
NVIDIA Japan2.3K views
Redis勉強会資料(2015/06 update) by Yuji Otani
Redis勉強会資料(2015/06 update)Redis勉強会資料(2015/06 update)
Redis勉強会資料(2015/06 update)
Yuji Otani52.5K views
DockerとPodmanの比較 by Akihiro Suda
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
Akihiro Suda47.9K views
マイクロサービスっぽい感じの話 by Makoto Haruyama
マイクロサービスっぽい感じの話マイクロサービスっぽい感じの話
マイクロサービスっぽい感じの話
Makoto Haruyama3.5K views

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

Lesson01 by
Lesson01Lesson01
Lesson01MRI
37.5K views55 slides
PXE @第一回成果報告会(2012/12/17) by
PXE @第一回成果報告会(2012/12/17)PXE @第一回成果報告会(2012/12/17)
PXE @第一回成果報告会(2012/12/17)stibear (stibear1996)
703 views11 slides
近頃のDockerネットワーク by
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワークYuji Oshima
5.1K views32 slides
rpi_handson_2 by
rpi_handson_2rpi_handson_2
rpi_handson_2teruyaono1
22 views15 slides
Infinite Debian - Platform for mass-producing system every second by
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
1.8K views61 slides
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化 by
nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化Shuichi Yukimoto
3.3K views26 slides

Similar to OverlayFS を使って Raspberry Pi を Network Bootする(20)

Lesson01 by MRI
Lesson01Lesson01
Lesson01
MRI37.5K views
近頃のDockerネットワーク by Yuji Oshima
近頃のDockerネットワーク近頃のDockerネットワーク
近頃のDockerネットワーク
Yuji Oshima5.1K views
Infinite Debian - Platform for mass-producing system every second by Taisuke Yamada
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
Taisuke Yamada1.8K views
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化 by Shuichi Yukimoto
nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化nginx + lua + ObjectStorage  ファイルアップロード/ダウンロードの高速化
nginx + lua + ObjectStorage ファイルアップロード/ダウンロードの高速化
Shuichi Yukimoto3.3K views
hpingで作るパケット by Takaaki Hoyo
hpingで作るパケットhpingで作るパケット
hpingで作るパケット
Takaaki Hoyo14.9K views
YAPC::Asia 2008 Tokyo - Pathtraq - building a computation-centric web service by Kazuho Oku
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
Kazuho Oku2.6K views
WebRTC mediasoup on raspberrypi3 by mganeko
WebRTC mediasoup on raspberrypi3WebRTC mediasoup on raspberrypi3
WebRTC mediasoup on raspberrypi3
mganeko2.3K views
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築 by Itoshi Nikaido
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
BioDevOpsによる再現性のあるバイオインフォマティクス環境の構築
Itoshi Nikaido5.2K views
Pyconjp2016 pyftplib by Shinya Okano
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano2.4K views
Raspberry Pi用のコンテナをクラウドでビルドする方法 by Shunsuke Kikuchi
Raspberry Pi用のコンテナをクラウドでビルドする方法Raspberry Pi用のコンテナをクラウドでビルドする方法
Raspberry Pi用のコンテナをクラウドでビルドする方法
Shunsuke Kikuchi5.1K views
10GbE時代のネットワークI/O高速化 by Takuya ASADA
10GbE時代のネットワークI/O高速化10GbE時代のネットワークI/O高速化
10GbE時代のネットワークI/O高速化
Takuya ASADA59.4K views
150629 02 by openrtm
150629 02150629 02
150629 02
openrtm684 views
ゲームの通信をつくる仕事はどうなるのだろう? by Kengo Nakajima
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
Kengo Nakajima1.5K views
WWCT ラズパイ Bluemix 講習資料 by Masaya Fujita
WWCT ラズパイ Bluemix 講習資料WWCT ラズパイ Bluemix 講習資料
WWCT ラズパイ Bluemix 講習資料
Masaya Fujita3.4K views
LinAction Theme LPICの問題を解いてみる~ネットワーク編~ by cyberblack28 Ichikawa
LinAction Theme LPICの問題を解いてみる~ネットワーク編~LinAction Theme LPICの問題を解いてみる~ネットワーク編~
LinAction Theme LPICの問題を解いてみる~ネットワーク編~

Recently uploaded

SSH超入門 by
SSH超入門SSH超入門
SSH超入門Toru Miyahara
405 views21 slides
onewedge_companyguide1 by
onewedge_companyguide1onewedge_companyguide1
onewedge_companyguide1ONEWEDGE1
32 views22 slides
Najah Matsuo Self Introduction by
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self IntroductionNajahMatsuo
10 views29 slides
how query cost affects search behavior translated in JP by
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JPTobioka Ken
10 views16 slides
lt.pptx by
lt.pptxlt.pptx
lt.pptxtomochamarika
85 views13 slides
システム概要.pdf by
システム概要.pdfシステム概要.pdf
システム概要.pdfTaira Shimizu
44 views1 slide

Recently uploaded(7)

onewedge_companyguide1 by ONEWEDGE1
onewedge_companyguide1onewedge_companyguide1
onewedge_companyguide1
ONEWEDGE132 views
Najah Matsuo Self Introduction by NajahMatsuo
Najah Matsuo Self IntroductionNajah Matsuo Self Introduction
Najah Matsuo Self Introduction
NajahMatsuo10 views
how query cost affects search behavior translated in JP by Tobioka Ken
how query cost affects search behavior translated in JPhow query cost affects search behavior translated in JP
how query cost affects search behavior translated in JP
Tobioka Ken10 views
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私 by 修治 松浦
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
JISTA月例会2023年12月 書籍『3カ月で改善!システム障害対応実践ガイド』ご紹介+失敗学と障害対応と私
修治 松浦195 views

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

Editor's Notes

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