AWS EC2の仮想化方式は、大きく分けて2つ。
- PV(準仮想化)
- HVM(完全仮想化)。
その内、PVには仮想化方式が2種類ある。
PV(Paravirtual)
1つは、PV。
あらかじめAWSで用意されたkernel(AKI)とinitrd(ARI)で起動される方式。
ルートデバイス不要。/bootなくても起動できるよ。
もう1つは、PV-GRUB。別名、UPK(User Provided Kernel)。
ユーザーが指定したkernel(AKI)で起動される方式。
起動時にルートデバイス内のgrub.conf読みに行く。パスの固定必要。/boot必要ね。
awsdocumentation:
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/UserProvidedKernels.html
HVM(Hardware-assited VM)
HVMは、HW層までまるっと仮想化。
通常の物理サーバのOSと同じ起動シーケンスを行う。(BIOS→MBR→bootローダ→kernel→init→inittab→rcスクリプト)
GPUインスタンス使う場合は必須。拡張ネットワーク使う場合も必須。
/bootないと起動できないよね。
- 各EC2インスタンスのサポート一覧
http://aws.amazon.com/jp/amazon-linux-ami/instance-type-matrix/
PV,HVMどっちがすごいの?
かつては、PVはHVMよりもパフォーマンスが優れていたが、最近はそうでもなくむしろHVMのが優れものみたい。
これはPVではHVMのHWをエミュレートするオーバーヘッドを回避できたことに起因していたけど、最近ではHVMでもPVと同様のことができるドライバできたためめ。
その他参考URL:
http://kanny.hateblo.jp/entry/2014/01/19/182759
http://docs.aws.amazon.com/ja_jp/AWSEC2/latest/UserGuide/virtualization_types.html
Thanks!