■専用デバイスと協調して超高速なシリーズ

・コンテキストスイッチ

・NIC上のプロセッサと協調して10Gbps以上のスループットのパケットを処理する仕組み

 ※NIC上のプロセッサに処理をオフロードするが実際に使われる割込みハンドラとかデバ

  イスするCPU命令とかデバイスのメモリマッピングの場所とか

・MMUによって処理される仮想メモリと物理メモリの高速マッピング

・デバイスマッパーのマッピングテーブルで高速マッピングされるしくみ

 ※ストレージ側の物理RAIDではストレージ側のCPUとメモリと専用デバイスで超高速処理

  されることをソフトウェアRAIDする場合は、kernelが制御して、サーバ機側のCPUとRAM

  を使って処理してる→使用されるハードウェアリソースの見積もりやパフォーマンスの評

  価方法は?

・RDMAって何だ?

 ※その前にDMAってどこで使われるの?

・GPUやグラフィックメモリをプログラムで使う方法と内部処理

 ライブラリコール

 システムコール

 割込みハンドラ

 

■kernelのそれぞれの処理の際に利用されるメモリ上のキャッシュやバッファ

・tcpやudpの処理で使われるキャッシュやバッファ

 ※ネットワークを介したデータストリームがユーザプログラムから送信されたり受信する際の

  データの流れと介在するメモリオブジェクト(ユーザランドとkernel領域)とエラーハンドリ

  ングの流れをもう一度復習しようよ

・scsi処理やその他IO処理で使われるキャッシュやバッファ

 

■kernelやデバイスなどの低レイヤーの状態確認/制御コマンド

・ioctl

・dmsetup

・udevadm

・smartctl

・strace

 

■straceの使い方

 

■メモリダンプの取得と解析方法

 

■cgroupのしくみ、プログラム(ミドルウェア)からの使い方

 

■mmap

・ファイルをopenしてread/writeしてからcloseするのとの違い。オーバヘッド的にどこでどんな差があるのか?どこのリソース消費がどのくらい違うのか?

https://ja.wikipedia.org/wiki/メモリマップトファイル

 

 

■超高速で省エネなロギング

 ・journaldとは

 

■各プロセス間通信

・コスト(応答時間、リソース消費量)、オーバヘッド、セキュリティ、信頼性、競合処理、タイミング合わせの方式(同期/非同期)とか

 

■ハイパーバイザー仮想化で使われる技術

・ringプロテクション

 

■コンテナ仮想化で使われる技術

・ネームスペース

・cgroup

 

■時刻

・ハードウェアクロック

・システムクロック

・システムクロックの時刻合わせのいろいろ

 - システム起動時/終了時

  とくにハードウェアクロック、前回終了時に保持した時刻キャッシュ?、ntp同期、

  slewモード、VM上のゲストOSの場合ハイパーバイザのシステムクロックとの同期、

  windowsとLinux共存環境における時刻同期のいろいろ

 - ntpクライアントによる時刻同期  

 

 

 

 

 

 

 

 

 

 

 

【課題】

・各Linuxディストリビューション、kernel.orgとファイルシステムの動向にざっと目を通す

・LVMのCLIコマンドをまとめる

・LVMのCLIコマンド以外のユーティリティ

 - SSM

 - snapper

・キャッシュプール論理ボリューム、キャッシュデータ論理ボリューム 、キャッシュメタデータ論理ボリューム

・LVMとHAクラスタリングツール(pacemeker、heartbeat)の絡み

・LVM(DMの一部)のソフトウェアRAIDとMDのソフトウェアRAIDの比較

・LVMとDMマルチパスドライバとの絡み

・Stratis ファイルシステム

・GFS2とLVMとHAクラスタリング

・BtrFS、ZFSとLVM+XFSの比較

・LVMとシステムバックアップの関係

 ※「storage VMotionとLVMの関係」で懸念していることと同じ。システムからストレージごと

  バックアップしたり、マイグレーションする場合のディスク(パーティション)のメタ情報の扱

  い。MBR同様、ddコマンドでディスクをクローニングする場合なら確実にストレージごと

  バックアップしたりマイグレーションできるが・・・。

・storage VMotionとLVMの関係は?

LVMはディスクの先頭から数セクタ分のディスク領域にLVMラベルやメタ情報を格納しているが、storage VMoitonによってこれらの領域もマイグレーション先のVMDKに移行されると思うけど、念のため確認する。(最近のRHELを普通にインストールされるとシステムディスクはデフォルトでLVM構成になるけどこのようなことを気にしたことはないから透過的に処理されるということだと思うが)

https://access.redhat.com/documentation/ja-jp/red_hat_enterprise_linux/7/html-single/logical_volume_manager_administration/index#lvm_metadata

 

 

・シンプロビジョニング論理ボリュームとディスク断片化の関係は?

 

 

【展望】

■なんちゃってオーケストレーション的な何か

LVMを使ってsoftwareRAIDしたり、HAクラスタリングするシステムは比較的小規模システムの場合が多いと思われるが、それでも大規模システムに転用する場合の問題点を具体的に考える。もしかしたら、snapperやSSMを使えば「なんちゃってオーケストレーションツール」を作れるのではないか? LVMとXFSの組合わせに限定せず、BtrFSやZFSを積極的に採用してストレージ回りのオーケストレーションツールをpythonで構成できそう?

オーケストレーションというからには、kvmやvirshあるいはdockerやlvsと組み合わせて、サーバ仮想化からストレージ構成(マルチパスやRAIDなど)、バックアップ、HAクラスタリングまですべてを統合したオーケストレーションれるのではないか?

※ていうか、OpenStackとかOpenShiftってLinux文化から派生したオーケストレーションツールなんだから、Linux(UNIX文化?)である「タイヤの2度発明はしない」とか「基本的な要素技術を組み合わせて大きなシステムを設計構築する」って発想だと思われるので、

 要素技術の熟知→オーケストレーション的なしくみを洞察

ってことができるんではないか?

てへぺろ

・systemd

・LVM

・bash

・journald

・NetworkManager

・selinux

・udev

・ipfilter

 - iptables

 - firewalld

 - nftables

・パフォーマンス確認・計測・監視

・cgroupを使ったリソース制御

・RDMAって何?

・Identity Management

・chrony、時計、時刻

・ロケール、文字コード

・パッケージ管理・更新管理

 - rpm

 - yum

 - dnf

・NFS

・kvm

・コンテナ仮想化技術

・その他kernel

 

【着眼点】

・どんなことができるか? OSレイヤー以外で類似機能が実現されている場合、条件によってどっちのレイヤーで該当機能を実現するのが妥当なのか

・もしユーザプログラムでかつ、kernelに普通のシステムコール以外を出すプログラムの場合、kernelのどの実装(本体、kernleモジュール)と絡むのか?どのシステムコールを使うのか?どの割込みから何かトリガーされるのか?/sys、/procでどんなユーザランドへのインタフェースをもつのか?/devに何かデバイスが作られるのか?

・どんなプロセスとどんなプロセス間通信をするのか?メモリオブジェクトとしてどんなデータを作って何に使うのか?ディスクオブジェクトはどんなもので何に使うのか?

 

※ソースコード読むにせよ、動かしてみて逆解析するにせよ、ドキュメント読み込むにせよちゃんとわかればいい。