pikesaku’s blog

個人的な勉強メモです。記載内容について一切の責任は持ちません。

OpenStackアーキテクチャメモ(Keystone)

参考

www.amazon.co.jp
 
 

機能と役割

・各コンポーネントAPI経由で利用する際のユーザー認証
・エンドポイント(APIのアクセス先URL)をユーザーに通知
 

動き

①ユーザーがコンポーネントにリクエストする際は、まずKeystoneに対し認証を行い以下情報を得る。
・Token
・エンドポイントリスト
②エンドポイントに対しリクスエストをTokenと一緒に送る
③エンドポイントはTokenの有効性を、Keystoneに対して確認後にリクエスト実行
※Tokenは有効期限があり
 

f:id:pikesaku:20171008164728p:plain

 

プロセス

keystone-allのみ
 
管理者と一般ユーザー向けのAPIがあり。待ち受けポートは以下の通り

用途 ポート番号
一般ユーザー用API 5000
管理者用API 35357

 

keystoneが管理する情報はDBに格納される
Tokenの保存先をDBではなく、memcachedに変更しDB負荷軽減が可能
管理者APIはadmin_tokenパラメタで指定した文字列で認証が可能

OpenStackアーキテクチャメモ(Glance)

参考

www.amazon.co.jp
 
 

機能と役割

仮想マシンの起動ディスクの元になるテンプレートイメージを管理
 
イメージ格納先として、Swift利用可能
ディストリ公開OpenStack用インスタンスイメージを登録して利用可能
デプロイしたインスタンスのスナップショットをイメージとして登録可能
インストールメディアを登録し起動可能(目的は??できることはできる)
 

インポート可能なイメージファイル形式

形式 説明
raw フラットなディスクイメージファイル
AMI/AKI/ARI Amazon EC2形式
qcow2 KVM形式
VDI VirtualBox形式
VMDK VMware形式
VHD Hyper-V形式

 

プロセス

プロセス名 説明
glance-api ユーザーリクエスト受付&テンプレートイメージやスナップショットの保存、取り出し処理
glance-registry テンプレートやスナップショット情報をDBに記録

 

補足

【ローカルキャッシュ】
イメージをローカルディスクにキャッシュする機能
Swift等外部ストレージにデータを置く場合に効果あり
glance-cache-manageコマンドでキャッシュ状態の確認が可能
  
レプリケーション
2つのglanceサーバ間でイメージをコピーする機能
glance-replicatorコマンドを利用

 

OpenStackアーキテクチャメモ(Nova)

参考

www.amazon.co.jp
 
 

機能と役割

仮想マシンの起動停止
仮想マシンに対するリソース割り当て管理
・物理ホストに対する仮想マシンの配置管理
SSH認証用キーペア管理
・Metadataサービス機能の提供
仮想マシンへのコンソールアクセス提供
 
 

プロセス名 説明
nova-api REST API提供
nova-scheduler インスタンス配置先決定
nova-compute ハイパーバイザー制御
nova-conductor DBアクセス
nova-consoleauth コンソールアクセス認証管理
nova-novncproxy インスタンスコンソールアクセス提供(Webブラウザ)
nova-xvpvnccproxy インスタンスコンソールアクセス提供(Javaクライアント)
nova-cert EC2互換API利用時の証明書を管理

 
 

設定ファイル 説明
nova.conf 全体設定
api-paste.ini WSGI設定。nova-apiが参照
policy.json API利用権限設定
rootwrap.conf root権限で実行する方式を設定



各プロセス間通信は基本的にメッセージングサーバ経由。プロセスの発行するリクエストはメッセージングサーバ経由し適したプロセスに渡される。

f:id:pikesaku:20171005001727p:plain

メッセージングサーバは、1つのメッセージを全サーバに配信、特定プロセスのみに配信するなどの指定が可能
・プロセス起動ホストを増やしロードバランスすれば冗長化可能
・Novaは構成管理とハイパーバイザー制御を実施。プロセス全停止しても、インスタンス自体の動きに影響なし。
 
 

【nova-api

・以下3種類のapiを提供

種別 ポート番号 プロセス
Nova API 8774 nova-api-os-compute
EC2互換API 8773 nova-api-ec2
Metadataサービス 8775 nova-api-metadata

 
 

【nova-scheduler】

インスタンス起動ホストを選定する
・選定では「フィルタ」と「重み」を使う
・フィルタは以下2種類

タイプ 説明
チャンスフィルター ランダムにホスト選択
フィルタスケジューラ 組み込みフィルタルール利用(デフォルト)

・フィルタスケジューラの場合、フィルタルールで対象ホストを絞り、残ったホストの重みを計算し、値が小さいホストを選択
・重みはホストの空き容量メモリサイズに定数(設定変更可能)を掛けて算出。
 定数が正の数であれば、空き容量メモリサイズが少ないホストが選出(詰め込み型、デフォルト)
 定数が負の数であれば、空き容量メモリサイズが大きいホストが選出(分散型)
 
 

【nova-conductor】

nova-computeが管理する物理ホストのリソース情報をメッセージングサーバ経由で受け取り、DBに格納する。
・Folsom以前はnova-computeが直接DBに書き込む仕組みだったが、DB負荷が高くなるため、nova-conductorがまとめて書き込む形に変更。
 
 

【nova-compute】

・以下2点の役割があり。
・ハイパーバイザー制御(インスタンス作成・削除等)
・ハイパーバイザー稼働ホストのリソース使用状況の把握・通知
・nova-computeが動作するホストで障害発生した場合、インスタンスも停止するが、novaでは自動HAの仕組みなし。
・従来と異なりIaaSの基本的考えでは、基盤側で冗長化するのではなく、アプリ側で冗長化する仕組みの実装が必要。
 アプリ自身で障害検知しNovaにAPI発行しインスタンス起動するなどの復旧フローを実行等
 
 

【nova-consoleauth、nova-novncproxy、nova-xvpvnncproxy】

・Novaが起動したインスタンスのコンソール画面へのアクセスを制御
・nova-consoleauthがセッション管理
・nova-novncproxy、nova-xvpvnncproxyがVNCによる画面転送機能を提供(KVMVNCサーバ)
・nova-novncproxyはnoVNC利用。noVNCはHTML5/Canvas/WebSocketを利用したWebブラウザで使えるVNCクライアント。
・nova-xvpvnncproxyはVNC Javaクライアントソフトウェアが必要。
・Horizonダッシュボードはnova-novncproxyを利用。
・コンソールアクセスするURLはコマンドで取得可能。
・tokenはnova-consoleauthが発行し、memcachedに保存。全nova-consoleauthがそれを共有しセッション管理する。

f:id:pikesaku:20171005022320p:plain
f:id:pikesaku:20171005022333p:plain

 
 

【nova-cert】

・EC2互換APIを利用する際に必要になるX509形式の証明書を管理するプロセス
・OpenStack APIが充実してきたため、最近は使われてない

OpenStackアーキテクチャメモ(共通バックエンド)

参考

www.amazon.co.jp

 
 

共通バックエンド

コンポーネント 説明
DB リソース・環境構成情報を格納
メッセージングサーバ プロセス間通信中継
memcached 永続化不要データの複数プロセス間共有で利用

詳解ディープラーニングを読んで(必要な数学知識-線形対数編)

読んだ本

 
Amazon CAPTCHA
 

参考URL

qiita.com
ベクトル計算の積の計算方法
 
manapedia.jp
シグマの計算方法

DeepLearningに必要な数学知識

偏微分
線形対数→式の記述や式変形を完結に扱うためにベクトルや行例を使うだけ。ベクトル空間・固有空間などの応用分野は把握する必要なし。
 

線形対数とは?

ベクトルおよび行列の演算を扱う
 

ベクトルの基本

 
実数a1,a2,a3,,,,aNがある時、以下のベクトル表記が可能
 
N項縦ベクトル
f:id:pikesaku:20170820222622p:plain
 
N項横ベクトル
f:id:pikesaku:20170820222629p:plain
 
成分が全て0のベクトルをゼロベクトルと呼ぶ
 

偏微分と全微分について

参考にしたURL

 
oto-suu.seesaa.net
 
remedics.air-nifty.com
 
上記2つのサイトがすごい分かりやすい!
 
※本記事以降の画像は参考URLから引用してます。

メモ

接線とは?

曲線の任意の点で接している直線(他の点では交わらない)
 
円の場合は以下の通り。
f:id:pikesaku:20170820185425p:plain
→真ん中が接線
 
他曲線における考え方
例えば、以下のような曲線における接線は、曲線との交わる点が1つ以上ある。
f:id:pikesaku:20170820185619p:plain
  

図形の全体を見渡したうえでのものではなく、そのうちの曲がりのひとつの山(盛り上がり)に着目した、部分についての表現

 
あくまで関数の一地点における表現
 

微分接線の傾きを示す関数

 

1次変数関数の微分は、微分という

2次以上変数関数の微分偏微分と全微分があり。

 

偏微分

 一つの変数の方向だけを見た傾き
 例) z = x + y
 x方向の傾きをあらわす式(xに関する偏微分) = ∂z/∂x
 y方向の傾きをあらわす式(yに関する偏微分) = ∂z/∂y

微分

 2次変数関数は曲線ではなく面になる。この面に接する平面を、接平面という
 接平面の傾き示す関数を全微分という
 偏微分を足したもの
 ∂z/∂x + ∂z/∂y