【Linux試験対策】LPIC-3 305見直しポイント

本稿ではLinux認定試験のLPICで必要とされる知識のうち見直すべきポイントをまとめます。

目次

完全仮想化・準仮想化

仮想化方式のType1とType2の違いを説明せよ
  • Type1(ハイパーバイザ型):ホストOSを必要としない。パフォーマンスが高い。XenやHyper-Vなど。
  • Type2(ホスト型):ホストOSが必要。VMwareやVirtualBoxなど。
準仮想化と完全仮想化を仮想化方式に対して位置付けよ

ハイパーバイザ型のうちゲストOSを改変してパフォーマンスを高めるものを準仮想化,ゲストOSを改変せずに忠実に再現するものを完全仮想化とよぶ

Xenは準仮想化と完全仮想化のどちらを実現するか

どちらも

KVMは準仮想化と完全仮想化のどちらを実現するか

主に完全仮想化

Intel-VTやAMD-Vは何を行うものか

CPUの仮想化支援機能

KVMは仮想化支援機能を前提として設計されています。

IngtelとAMDの判別方法を述べよ

egrep '(vmx|svm)' /proc/cpuinfoを実行して出現する文字列のCPUフラグから判別する。

CPUの情報が羅列されますが,Intelの場合はvmxがヒットして,AMDの場合はsvmがヒットします。

KVMとQEMUの関係を説明せよ

KVMはカーネルの一部として動作する仮想化モジュールで,QEMUはKVM上で動作するハードウェアのエミュレータ。1つの仮想マシンに対して1つのQEMUプロセスが対応する。KVMで作成された仮想マシンからの命令は物理CPUには飛ばずQEMUがエミュレートするハードウェアに飛ぶ。ただし,仮想化支援機能が有効化されている場合は,仮想CPU命令が実際のCPU命令に動的に変換されて物理CPUを利用することもある。

QEMUと仮想化支援機能の関係を説明せよ
  • QEMU:メモリやディスクO/Oについてハードウェアをエミュレートする
  • 仮想化支援機能:QEMUがCPUをカバーしてもよいが,パフォーマンス向上のためCPUはホストOSが仮想化支援機能でカバーする
ISOファイルとイメージファイルの違いをざっくり説明せよ
  • ISOファイル:OSのインストーラ
  • イメージファイル:仮想マシンの状態
libvirtとは

仮想マシンの作成・管理・監視・ネットワーク/ストレージ・管理などを行うためのインターフェース

libvirtとvirshの関係性を説明せよ

libvirtのCLIツールがvirsh

virshの設定ファイル

/etc/libvirt/qemu

SMPとは

Symmetric Multi-Processingの略称で,複数のCPUを使用した並列処理において全てのCPUに均一に処理を割り当てる方式のこと

KVMでは最大で16の仮想CPIを扱えます。

Xenの特徴を説明せよ

ハイパーバイザを軽量化し,管理用OSを実行する仮想マシンに仮想デバイス(バックエンド)やデバイスドライバをインストールする方式をとっている。管理用仮想マシンによる集中管理のようなイメージ。

XenのDomainとは

仮想マシンの実行単位

XenのDomainを分類せよ
  • Domain-0:管理用ドメイン
  • Domain-U:ゲストドメイン
HVMドメインとは

Hardware Virtual Machineの略称で,CPU仮想支援機能を利用した完全仮想化ドメインのことを指す

完全仮想化を指定するための設定

/etc/xen/domain1.cfgにbuilder='hvm'を記述する

準仮想化を指定するための設定

/etc/xen/domain1.cfgなどにbuilder='generic'を記述する(デフォルト)

Domain-1を自動起動するための設定

ln -s /etc/xen/domain1 /etc/xen/auto/domain1

autoディレクトリ上にシンボリックリンクを作成しています。

Domain-0に割り当てるメモリを512Mにするための設定

GRUB2の場合は/etc/default/grubにGRUB_CMDLINE_XEN_DEFAULT="dom0_mem=512M"を記述する

ブートローダの設定ファイルに定義するという意味です。

Xenで新しい仮想ブロックデバイスを作成するコマンド

xl block-attach

block-createではない点に注意です。

XAPIを説明する際のキーワード
  • XenServerの管理ツールとインタフェース
  • Xenツールスタックの拡張機能(ツールチェーン)
xeコマンドでdomain1を起動する方法

xe vm-start vm=domain1

TAPとTUNを説明せよ
  • TAP:L2の仮想化デバイス(Terminal Access Point)
  • TUN:L3の仮想化デバイス(TUNnel)
TAPを作成するコマンド

tunctl -p -t tap1(今ではip tuntapが利用される)

TUNを作成するコマンド

tunctl -n -t tun1(今ではip tuntapが利用される)

QEMUの起動パラメータを指定するオプション

-boot

vagrantを使って仮想マシンを停止するコマンド

vagrant halt

一時停止はsuspendです。

VirtualBoxを開発した企業

Oracle

CPUアフィニティの設定方法

virsh vcpupin domain1 1 4(domain1の仮想CPU1と物理CPU4の関連付け)

KVMの管理ツール

oVirt

Linuxベースの仮想化テクノロジーに対する包括的な管理インフラストラクチャ

oVirt

libvirtはKVMを管理するか

管理する

virt-imgというコマンドは存在するか

存在しない。virt-imageであれば存在する。

virt-viewerとvirt-managerの違い
  • virt-viewer:コンソールをグラフィカルに見るだけ
  • virt-manager:VMの作成や管理を行う
SASLとは

Simple Authentication and Security Layerの略称で,認証を標準化するフレームワークのことを指す。libvirtが対応している認証プロトコルの一つ(SSH/SASL/Kerberos)

XAPIの主要デーモンとCLIコマンド名を答えよ
  • 主要デーモン:xapi
  • CLIコマンド名:xe
xlの主要デーモンとCLIコマンド名を答えよ
  • 主要デーモン:xenstored・xenconsoled
  • CLIコマンド名:xl
ライブマイグレーションを行うコマンド

xl migrate

--liveがつくのはxmという旧コマンドです。xlはデフォルトでライブマイグレーション。

Domain-Uは完全仮想化と準仮想化のどちらで構築するか

どちらの方式も利用できる

/etc/xen/xl.confでbootに指定される-c/-d/-nオプションを説明せよ
  • -c:ハードディスク
  • -d:CD-ROM
  • -n:ネットワーク(PXEブート)
xlコマンドで停止中の仮想マシンを再開させるコマンドはunpauseとresumeのどちらか

unpause

resumeを使うのはvagrantやvirshです。

xlコマンドで停止中の仮想マシンを終了させるコマンドはhaltとshutdownのどちらか

shutdown

haltを使うのはvagrantです。virshはshutdownを利用します。

準仮想化ゲストの仮想CDROMを入れ替えるコマンド

block-detachとblock-attach

cd-ejectとcd-insertは完全仮想化で利用されるコマンドです。

xlで起動時にコンソール接続するサブコマンド

xl create -c

--consoleというオプションは存在しないため注意してください。

KVMとXenの違いとは
  • KVM:Linuxカーネルに組み込まれた仮想化機能で,主に完全仮想化をサポートする
  • Xen:独立したハイパーバイザーで,完全仮想化と準仮想化の両方をサポートする
XenとQEMUは連携するか

完全仮想化(HVM)では連携する。QEMUは名前の通りレミュレータなので完全仮想化のようにエミュレーションが必要になるユースケースで連携すると理解する。

KVM向けに拡張されたQEMUのコマンドユーティリティを述べよ
  • Red Hat系:qemu-kvm
  • Debian系:kvm

いずれもディスクイメージの作成はqemu-imgを利用します。Red Hatは2つの単語に分かれているイメージからqemu-kvmであると覚えてしまいましょう。

virshで仮想マシンを停止・再開するコマンド

suspend・resume

virshで仮想マシンを開始するコマンド

start

bootではない点に注意してください。

virshで仮想マシンを再起動するコマンド

reboot

Intel CPUアーキテクチャを使用するために必要なカーネルモジュールの名前

kvm-intel.ko

intel-kvm.koとしないように注意してください。

Proxmoxとは

KVMとLXCを利用して複数の仮想環境を効率的に管理できるWebインタフェース

systemd-machinedとは

systemdの一部でコンテナや仮想マシンを管理するためのデーモン。machinectlを利用する。

Xenノードとは

物理サーバのこと

/etc/xen/xl.confと/etc/xen/xl.cfgの違い
  • /etc/xen/xl.conf:グローバルな設定ファイル
  • /etc/xen/xl.cfg:ドメイン個別の設定ファイル
brctlとtunctlの違い

いずれもQEMUが仮想マシンにネットワーク接続を提供するためのツール

  • brctl:ブリッジインターフェースを管理。現在ではip linkが利用される。
  • tunctl:仮想ネットワークインターフェースを管理。現在ではip tuntapが利用される。
virtlogdとvirtlockdを説明せよ
  • virtlogd:仮想マシンのログを集中管理するためのデーモン
  • virtlockd:仮想マシンのファイルロックを担当するデーモン
VMDKとは

VMwareで使用される仮想ディスクイメージのファイルフォーマット

libguestfishとは

ディスクイメージを操作・管理するためのライブラリ。guestfishで操ることができる。

virt-sysprepとは

仮想マシンのディスクイメージを一般化して再利用可能な状態にするためのツール

prepはprepareの略称でしょう。

ダイレクトLinuxブーティングとは

ブートローダを迂回して直接Linuxカーネルと初期RAMディスクをロードする機能

KVM仮想マシン内でダイレクトLinuxブーティングを利用するためのLinuxカーネルに対するオプション

-append

KVMのドライブをアタッチする際にrcyncは使えるか

使えない。rsyncはディレクトリをコピーするためのコマンド。

qemuモニタでスナップショットから仮想マシンを復元するためのコマンド

loadvm

仮想マシンにアタッチされたCD-ROMのイメージファイルを変更するvirshのサブコマンド

change-media

KVMのIDEとは

Integrated Drive Electronicsの略称で,仮想マシンに接続される仮想ディスクやCD-ROMのインターフェースのことを指す

KVMで1つ目のIDEに接続されたCD-ROMを取り出すためのコマンド

eject ide 1 -cd0

xl listとは何を表示するコマンドか

Xen ハイパーバイザで動作している仮想マシン(ドメイン)の一覧

xl listのpは何を表すか

paused

xl listのsは何を表すか

shutdown

xl listのcは何を表すか

crashed

xl listのdは何を表すか

dying

「XenStoreはXenに関する実行時情報を格納する」は正しい説明か

正しい

virsh-imgとvirsh-imageはどちらが正しいコマンドか

virsh-image

利用可能な仮想マシン一覧を表示するにはvirsh listとvirsh showのどちらが正しいコマンドか

virsh list

vcpupinの引数では仮想CPUと物理CPUはどちらを先に指定するか

仮想CPU。対象のゲスト→仮想CPU→物理CPUの順。

KVMパラメータで-drive file=sample.imgと同様のオプションを挙げよ

-hda sample.img

-hdbでもOKです。=が入らない点に注意してください。

「最近の全てのx86ベースのマシンではハードウェアベースの仮想化に対応している」は正しいか

正しい

Xenゲストドメインにアタッチされているブロックデバイスを表示するxlのサブコマンド

block-list

KVMで仮想化ホストをセットアップする際に必要ないのはlibvirtとvirshのどちらか

virsh

「virshは仮想マシンの運用を担う」と理解しましょう。

virshでsnapshotから復元するコマンド

virsh snapshot-revert

virshのnwfilterコマンドを列挙せよ
  • virsh nwfilter-dumpxml <フィルター名>
  • virsh nwfilter-list
  • virsh nwfilter-define <ファイル名>
  • virsh nwfilter-undefine <フィルター名>
  • virsh nwfilter-set-uuid <フィルター名>
  • virsh nwfilter-apply <フィルター名> <ドメイン名>
guestmountとは

qemuやlibvirtで利用される仮想マシンのディスクイメージをマウントすることにより,仮想マシンのディスク内容をホストマシンから直接見ることができるようになるツール

コンテナ仮想化

namespaceを作成するコマンド

unshare

namespaceに入るコマンド

nsenter

namespaceへのシンボリックリンクが格納されている場所

/proc/[pid]/ns

コンテナを作成するLXCのコマンド

lxc-create

upではない点に注意です。

コンテナ内で実行可能なシステムコールをフィルタリングする機能

seccomp

OCIとは

Open Container Initiativeの略称で,コンテナの標準仕様を策定する組織やその営みを指す

runcとは

OCI準拠のコンテナランタイム

dockerは内部でruncを実行しています。

Kubernetesのコンテナランタイムを列挙せよ
  • CRI-O:軽量だがDockerと互換性なし
  • containerd:汎用でDockerと互換性あり

CRI-OはContainer Runtime Interface for OCIの略称です。

CRIとは

Kubernetes Container Runtime Interfaceの略称で,Kubernetesがコンテナランタイムと通信するための標準 APIを指す。DockerなしでKubernetesを動作させるために導入された。

kubeletとは

各ノード上でコンテナ化されたアプリケーションの実行と管理を担当するコンポーネント

Podとは

Kubernetesの最小単位で,1つ以上のコンテナが動作する単位

Nodeとは

Kubernetesクラスタの実行単位で,物理マシンまたは仮想マシンのことを指す

Clusterとは

複数のNodeをまとめた集合で,Kubernetesはクラスタ全体の管理を行う

podmanとは

コンテナ管理ツール

dockerはデーモン型ですがpodmanはデーモンレス型で,かつrootを必要としません。

buildahとは

コンテナイメージのビルドツール

skopeoとは

コンテナイメージの操作・管理ツール

Linuxカーネルがcgroupの管理に使用する仮想ファイルシステムのマウントポイント

/sys/fs/cgroup

lxcの管理ツール

lxd

Dockerデーモンがコンテナ・イメージ・ボリューム・ネットワーク設定などを保存するディレクトリ

/var/lib/docker/

Docker ComposeとDocker Swarmの違い
  • Docker Compose:開発環境向けで,簡易的なコンテナ管理を実現
  • Docker Swarm:本番環境向けで,複数ホストにまたがるコンテナオーケストレーションを実現
Kubernetesリソースの定義や管理を簡素化するためのツール

Helm

Kubernetesの管理プラットフォーム

Rancher

HelmはKubernetes上のアプリケーション管理ツールであり,Rancherはクラスタ管理ツールです。

Red Hatが提供するエンタープライズ向けのKubernetesディストリビューション

OpenShift

データセンターやマルチクラウドにおけるインフラ全体を管理するプラットフォーム

Mesosphere DC/OS

「Linux VServerはコンテナ型仮想化ソフトウェアである」は正しいか

正しい

「vagrantとdockerはデフォルトでコンテナを扱う」は正しいか

正しくない。Vagrantは仮想マシンがデフォルト。

unshareコマンドのオプションを列挙せよ
  • -m --mount(マウント名前空間を分離)
  • -u --uts(ホスト名・ドメイン名を分離)
  • -i --ipc(プロセス間通信名前空間を分離)
  • -n --net(ネットワーク名前空間を分離)
  • -p --pid(プロセスID名前空間を分離)
  • -U --user(ユーザ名前空間を分離)
  • -C --cgroup(cgroup名前空間を分離)
  • -f --fork(指定した名前空間内で新しいプロセスをフォーク)

VMのデプロイとプロビジョニング

Horizonとは何か

OSSのクラウドコンピューティングサービスであるOpenStackのWebインタフェース

OpenStackはローカルで動かせる簡易版AWSのイメージです。

AWSのEC2に相当するOpenStackのコンポーネントは何か
  • Nova:仮想インスタンスの制御や物理マシンのプロビジョニング
  • Glance:仮想マシンのイメージ管理
AWSのEBSに相当するOpenStackのコンポーネントは何か

Cinder

AWSのIAMに相当するOpenStackのコンポーネントは何か

Keystone

AWSのVPCに相当するOpenStackのコンポーネントは何か

Neutron

AWSのS3に相当するOpenStackのコンポーネントは何か

Swift

Packerとは何か

HCL2(Terraformと同じ仕様)やJSONの設定ファイルを用いてマシンイメージを作成するツール

Terraformと同じくHashiCorpによって開発されました。Ansible・Chef・Puppetなどのプロビジョニングツールと統合することが可能です。

NASAが開発してRackSpace社のストレージサービスを組み入れたソフトウェア

OpenStack

マネジメントサーバに管理されるリソースで構成されるソフトウェア

CloudStack

カリフォルニア大学サンタバーバラ校で開発されAWSと同等のクラウド環境を構築できるソフトウェア

Eucalyptus

ユーカリの早い成長からAWSのようなスケーラビリティを追い求めると覚えてしまいましょう。

主要な仮想化ソフトウェアに対応した仮想データセンタ管理向けのソフトウェア

OpenNebula

データセンターを宇宙と見立てて星雲を意味するNebulaを使っていると覚えてしまいましょう。

cloud-initの動作状態や処理済みのデータを保存するディレクトリ

/var/lib/cloud/

ldirectordとは

Linux Virtual Server(LVS)の一部であり,バックエンドのサーバ群にトラフィックを分散するためのロードバランサ

Packerの書式はJSONとHCLのどちらか

両方。最近ではHCL。

NUMAとは

Non-Uniform Memory Accessの略称で,コンピュータのメモリアーキテクチャの一つ。複数のプロセッサやコアがあるシステムにおいて,それぞれのプロセッサが直接アクセスできるメモリ領域が異なる方式。

引っかかったポイント

kvmやqemu-kvmで初期RAMディスクをロードするためのオプション

-initrd

PVという語について

Physicalを想起しがちだがParavirtualizedで準仮想化を表すため真逆。virt-p2vのpはphysicalだから厄介。

lxc-checkpointはコンテナを一時停止させるか

一時停止させる

「oVirtは複数の異なる仮想化技術を共通化するライブラリ」は正しいか

正しくない。KVMを利用した仮想マシンの管理ツールと理解する。

「KubernetesはPodに障害が発生すると別のノードでPodを再起動する」は正しいか

正しくない。デフォルトでは同じノード上でPodが再起動される。

「Podのすべてのコンテナは同じノード上で実行される」は正しいか

正しい

「QEMUは仮想CPUを利用して仮想マシンを物理CPUにマッピングする」は正しいか

正しくない。QEMUはあくまでもエミュレーションだけでマッピングは行わない。マッピングを行うのはKVMなどのハイパーバイザ。

DockerfileでCOPY data/ /data/した後にVOLUME /data/すると何が起きるか

コンテナ側の/data/をボリューム化してホスト側の/var/lib/docker/volumes/にマウントする。このマウントの種類はボリュームマウントで,docker側で勝手に名前を付けてくれると理解すればよい。

シェアはこちらからお願いします!

コメント

コメントする

※ Please enter your comments in Japanese to distinguish from spam.

目次