LPI-JapanLevel 3

難易度は Level 1(やさしめ)〜Level 5(難関) の5段階です。

LinuC レベル2 201試験のサンプル問題(本番形式・解説付き)

LinuC レベル2 201試験(LPI-Japan・LinuC-2 201試験(Linuxシステム構築))の出題形式を、実際の問題で確かめられます。ここに掲載する5問は、無料の会員登録で解ける模試 第1回(60問)の冒頭から抜粋したオリジナル問題です。当サイトは全757問を本番CBT準拠の形式で収録しており、この5問はそのごく一部にあたります。

設問1

KVM環境における「QEMU」の役割に関する記述として、最も適切なものはどれか。

  • QEMUはmodprobeでロードされるLinuxカーネルのモジュールであり、/dev/kvmというデバイスファイルを作成して単体でCPUのハードウェア仮想化支援を提供するため、ユーザ空間のプログラムを別途必要としない
  • QEMUはvirbr0のようなネットワークブリッジを構成し、そこから払い出すアドレスをdnsmasqと連携して管理するためのユーザ空間デーモンであり、仮想マシン本体の起動やデバイスの提供には関与しない
  • QEMUはCPUの仮想化支援機能(VT-x/AMD-V)そのものを指す呼称であり、BIOSやUEFIの設定画面で有効・無効を切り替えるIntel社提供のファームウェア機能であって、OS上で動作するプログラムではない
  • QEMUはマシンエミュレータおよび仮想化ソフトウェアであり、KVMのハードウェア仮想化支援機能と組み合わせて動作することで、ディスクやネットワークなどのデバイスエミュレーションを担いつつ高速な仮想マシンを実現する(正解)

解説

QEMUはCPU・デバイスをソフトウェアでエミュレートするマシンエミュレータであり、KVMのハードウェア仮想化支援機能と組み合わせることで、エミュレーションのオーバーヘッドを抑えた高速な仮想マシン実行を実現する。この組み合わせは一般に「KVM/QEMU」と呼ばれる。virbr0の構成やdnsmasqとの連携はlibvirtが担う部分であり、QEMUは仮想マシン本体のエミュレーション・起動に直接関与する。

他の選択肢が誤りである理由

  • 「QEMUはmodprobeでロードされるLinuxカーネルのモジュールであり、/dev/kvmというデバイスファイルを作成して単体でCPUのハードウェア仮想化支援を提供するため、ユーザ空間のプログラムを別途必要としない」誤り。カーネルモジュールとして動作し/dev/kvmを提供するのはkvm/kvm-intel/kvm-amdであり、QEMUはユーザ空間で動作するプログラムである。
  • 「QEMUはvirbr0のようなネットワークブリッジを構成し、そこから払い出すアドレスをdnsmasqと連携して管理するためのユーザ空間デーモンであり、仮想マシン本体の起動やデバイスの提供には関与しない」誤り。virbr0の構成やdnsmasqとの連携はlibvirtが担う部分であり、QEMUは仮想マシン本体のエミュレーション・起動に直接関与する。
  • 「QEMUはCPUの仮想化支援機能(VT-x/AMD-V)そのものを指す呼称であり、BIOSやUEFIの設定画面で有効・無効を切り替えるIntel社提供のファームウェア機能であって、OS上で動作するプログラムではない」誤り。VT-x/AMD-VはCPUベンダーが提供するハードウェア機能であり、ユーザ空間のプログラムであるQEMUとは別物である。

設問2

パーティション/dev/sdb1を、ボリュームラベルをdataとして指定しながらext4ファイルシステムでフォーマットするコマンドを入力せよ。

入力形式(コマンドを打ち込んで答える問題です)

mkfs.ext4 -L data /dev/sdb1(正解)

別解: mkfs -t ext4 -L data /dev/sdb1

解説

mkfs.ext4(実体はmke2fs -t ext4)の-Lオプションは、フォーマットと同時にボリュームラベルを設定する。既存のファイルシステムのラベルだけを後から変更したい場合はe2labelやtune2fs -Lを使うが、これらは新規フォーマットは行わない点でmkfs系コマンドと役割が異なる。

設問3

LVMにおいて、システム上の全ての物理ボリューム(PV)について、所属するボリュームグループ名・サイズ・空き容量を1行1PV形式のコンパクトな一覧として素早く確認したい。適切なコマンドはどれか。

  • vgs -o pv_name
  • pvdisplay
  • pvscan --cache
  • pvs(正解)

解説

pvsはPV単位の情報を1行1件のコンパクトな表形式で表示する。詳細な複数行形式で表示したい場合はpvdisplayを用いる。vgsはボリュームグループ単位のレポートを行うコマンドであり、PV単位でのサイズ・空き容量を一覧化する用途には適さない。pvscan --cacheはデバイスを再スキャンしLVMのメタデータキャッシュを更新するためのコマンドであり、主に起動時やudevイベント時に使われるもので、見やすい一覧表示を主目的としたコマンドではない。

他の選択肢が誤りである理由

  • 「vgs -o pv_name」誤り。vgsはボリュームグループ単位のレポートを行うコマンドであり、PV単位でのサイズ・空き容量を一覧化する用途には適さない。
  • 「pvdisplay」誤り。pvdisplayはPVごとに複数行にわたる詳細情報をブロック形式で表示するコマンドであり、コンパクトな一覧表示を求める設問の要件には適さない。
  • 「pvscan --cache」誤り。pvscan --cacheはデバイスを再スキャンしLVMのメタデータキャッシュを更新するためのコマンドであり、主に起動時やudevイベント時に使われるもので、見やすい一覧表示を主目的としたコマンドではない。

設問4

ddコマンドでディスクイメージのバックアップを取得する際、デフォルトのブロックサイズ(512バイト)のままではシステムコール回数が多く転送速度が遅い。ブロックサイズを64KBに指定して転送効率を高めたい。適切なオプションはどれか。

  • dd if=/dev/sdb of=/backup/sdb.img count=64K
  • dd if=/dev/sdb of=/backup/sdb.img bs=64K(正解)
  • dd if=/dev/sdb of=/backup/sdb.img skip=64K
  • dd if=/dev/sdb of=/backup/sdb.img seek=64K

解説

dd の bs= オプションは1回の読み書きのブロックサイズを指定し、転送効率を左右する。count/skip/seekはいずれもブロック数・位置に関するオプションでありブロックサイズの指定ではない。

他の選択肢が誤りである理由

  • 「dd if=/dev/sdb of=/backup/sdb.img count=64K」誤り。countは転送するブロックの個数を指定するオプションであり、ブロックサイズ自体は既定の512バイトのままとなる。
  • 「dd if=/dev/sdb of=/backup/sdb.img skip=64K」誤り。skipは入力側で読み飛ばすブロック数を指定するオプションであり、ブロックサイズの指定ではない。
  • 「dd if=/dev/sdb of=/backup/sdb.img seek=64K」誤り。seekは出力側で書き込み開始位置として飛ばすブロック数を指定するオプションであり、ブロックサイズの指定ではない。

設問5

Ansible のファクト(facts)の説明として正しいものはどれか。

  • Playbook の vars やインベントリのファイルにユーザーが書いた変数
  • 管理ノードの ansible.cfg に書く、接続先や接続の方法の情報
  • タスクの実行の結果を register で名前を付けて保存した変数
  • 管理対象のホストから集めた OS や IP アドレスなどの情報(正解)

解説

ファクトは、管理対象のホストの OS、IP アドレス、マウントしたファイルシステムなどの情報である。既定では各プレイの最初に集め、ansible_facts の変数で参照できる。集めなくてよい時は、プレイの単位で集めるのをやめて速くできる。ansible.cfg は Ansible 自体の動きを決めるファイルで、ファクトではない。

他の選択肢が誤りである理由

  • 「Playbook の vars やインベントリのファイルにユーザーが書いた変数」vars に書くのはユーザーが決める変数で、ホストから集めた情報ではない。
  • 「管理ノードの ansible.cfg に書く、接続先や接続の方法の情報」ansible.cfg は Ansible 自体の動きを決めるファイルで、ファクトではない。
  • 「タスクの実行の結果を register で名前を付けて保存した変数」register はタスクの結果を保存する仕組みで、ファクトとは別である。

続きは、会員登録なしでそのまま50問解けます。採点と解説つきで、上と同じ本物の問題です。

登録なしで50問解く