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?

Was ist angesagt? (20)

Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装Slurmのジョブスケジューリングと実装
Slurmのジョブスケジューリングと実装
 
普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見普通のRailsアプリをdockerで本番運用する知見
普通のRailsアプリをdockerで本番運用する知見
 
ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?ゲームの通信をつくる仕事はどうなるのだろう?
ゲームの通信をつくる仕事はどうなるのだろう?
 
Apache Igniteインメモリーデータ処理プラットフォーム:特徴&利活用
Apache Igniteインメモリーデータ処理プラットフォーム:特徴&利活用Apache Igniteインメモリーデータ処理プラットフォーム:特徴&利活用
Apache Igniteインメモリーデータ処理プラットフォーム:特徴&利活用
 
分散システムについて語らせてくれ
分散システムについて語らせてくれ分散システムについて語らせてくれ
分散システムについて語らせてくれ
 
Paxos
PaxosPaxos
Paxos
 
Cassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sqlCassandraとh baseの比較して入門するno sql
Cassandraとh baseの比較して入門するno sql
 
何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門何となく勉強した気分になれるパーサ入門
何となく勉強した気分になれるパーサ入門
 
多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換多倍長整数の乗算と高速フーリエ変換
多倍長整数の乗算と高速フーリエ変換
 
nginxの紹介
nginxの紹介nginxの紹介
nginxの紹介
 
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
PCCC23:富士通株式会社 テーマ1「次世代高性能・省電力プロセッサ『FUJITSU-MONAKA』」
 
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
 
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
【B-4】オープンソース開発で、フリー静的解析ツールを使ってみる
 
Docker Tokyo
Docker TokyoDocker Tokyo
Docker Tokyo
 
Google Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサGoogle Cloud のネットワークとロードバランサ
Google Cloud のネットワークとロードバランサ
 
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
続・PFN のオンプレML基盤の取り組み / オンプレML基盤 on Kubernetes 〜PFN、ヤフー〜 #2
 
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
Apache Sparkに手を出してヤケドしないための基本 ~「Apache Spark入門より」~ (デブサミ 2016 講演資料)
 
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
 
DockerコンテナでGitを使う
DockerコンテナでGitを使うDockerコンテナでGitを使う
DockerコンテナでGitを使う
 
忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver忙しい人の5分で分かるDocker 2017年春Ver
忙しい人の5分で分かるDocker 2017年春Ver
 

Ä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の問題を解いてみる~ネットワーク編~
 
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
IT エンジニアのための 流し読み Windows 10 - Windows のネットワーク最適化機能
 

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