Manpages

名 前

virt-alignment-scan - 仮 想 マ シ ン の パ ー テ ィ シ ョ ン に お け る ア ラ イ メ ン ト の 確 認

書 式

virt-alignment-scan [--options] -d domname
virt-alignment-scan [--options] -a disk.img [-a disk.img ...]
virt-alignment-scan [--options]

説 明

古 い オ ペ レ ー テ ィ ン グ シ ス テ ム が 自 身 を イ ン ス ト ー ル す る と き 、 パ ー テ ィ シ ョ ン ツ ー ル が 基 礎 と な る ス ト レ ー ジ と 一 致 し な い セ ク タ ー に パ ー テ ィ シ ョ ン を 配 置 し ま す (一 般 的 に 最 初 の パ ー テ ィ シ ョ ン は セ ク タ ー 63 か ら 始 ま り ま す )。 一 致 し な い パ ー テ ィ シ ョ ン に よ り 、 必 要 以 上 に I/O を 発 生 さ せ る と い う オ ペ レ ー テ ィ ン グ シ ス テ ム の 問 題 を 引 き 起 こ し ま す 。

virt-alignment-scan ツ ー ル は 、 仮 想 マ シ ン お よ び デ ィ ス ク イ メ ー ジ に あ る パ ー テ ィ シ ョ ン の 配 置 を 確 認 し ま す 。 配 置 に 問 題 が あ れ ば 警 告 し ま す 。 現 在 、 配 置 の 問 題 を 修 正 す る た め の 仮 想 化 ツ ー ル は あ り ま せ ん 。 ゲ ス ト オ ペ レ ー テ ィ ン グ シ ス テ ム を 再 イ ン ス ト ー ル す る こ と だ け が で き ま す 。 以 下 の NetApp の ド キ ュ メ ン ト が 、 問 題 と 取 り 得 る 解 決 策 を ま と め て い ま す : http://media.netapp.com/documents/tr-3747.pdf

出 力

こ の ツ ー ル を デ ィ ス ク イ メ ー ジ に お い て 直 接 実 行 す る に は 、 -a オ プ シ ョ ン を 使 用 し ま す :

$ virt-alignment-scan -a winxp.img
/dev/sda1 32256 512 bad (alignment < 4K)
$ virt-alignment-scan -a fedora16.img
/dev/sda1 1048576 1024K ok
/dev/sda2 2097152 2048K ok
/dev/sda3 526385152 2048K ok

libvirt が 把 握 し て い る 仮 想 マ シ ン に お い て ツ ー ル を 実 行 す る に は 、 -d オ プ シ ョ ン お よ び お そ ら く -c オ プ シ ョ ン を 使 用 し ま す :

# virt-alignment-scan -d RHEL5
/dev/sda1 32256 512 bad (alignment < 4K)
/dev/sda2 106928640 512 bad (alignment < 4K)
$ virt-alignment-scan -c qemu:///system -d Win7TwoDisks
/dev/sda1 1048576 1024K ok
/dev/sda2 105906176 1024K ok
/dev/sdb1 65536 64K ok す べ て の libvirt 仮 想 マ シ ン を ス キ ャ ン す る に は -a-d オ プ シ ョ ン を つ け ず に virt-alignment-scan を 実 行 し ま す 。

# virt-alignment-scan
F16x64:/dev/sda1 1048576 1024K ok
F16x64:/dev/sda2 2097152 2048K ok
F16x64:/dev/sda3 526385152 2048K ok 出 力 は 4 つ ま た は そ れ よ り 多 い 、 空 白 区 切 り の 項 目 か ら 構 成 さ れ ま す 。 プ ロ グ ラ ム か ら こ れ を 構 文 解 析 す る 場 合 、 最 初 の 4 列 の み が 重 要 で す 。 各 項 目 は 次 の と お り で す :
1 列 目

The device and partition name (eg. /dev/sda1 meaning the first partition on the first block device). す べ て の libvirt 仮 想 マ シ ン を 一 覧 表 示 す る と き (-a-d オ プ シ ョ ン な し )、 こ の 列 は libvirt 名 ま た は UUID が 先 頭 に つ き ま す (--uuid が 指 定 さ れ て い る と )。 例 : "WinXP:/dev/sda1"

2 列 目 パ ー テ ィ シ ョ ン の 開 始 位 置 ( バ イ ト 単 位 )
3 列 目 バ イ ト ま た は キ ロ バ イ ト 単 位 の ア ラ イ メ ン ト ( 例 : 512, "4K")
4 列 目 ア ラ イ メ ン ト が 最 適 な パ フ ォ ー マ ン ス の 場 合 に "ok"、 ア ラ イ メ ン ト が パ フ ォ ー マ ン ス の 問 題 を 引 き 起 こ す 可 能 性 が あ る 場 合 に "bad"。
5 列 目 以 降 オ プ シ ョ ン の 自 由 な テ キ ス ト 説 明 。 プ ロ グ ラ ム か ら の 終 了 コ ー ド は 、 不 適 切 に 配 置 さ れ た パ ー テ ィ シ ョ ン が 見 つ か っ た か ど う か に 依 存 し て 変 わ り ま す 。 以 下 の "終 了 ス テ ー タ ス " を 参 照 し て く だ さ い 。 出 力 な し で 終 了 コ ー ド を 欲 し い な ら ば 、 -q オ プ シ ョ ン を 使 用 し て く だ さ い 。

オ プ シ ョ ン

--help 簡 単 な ヘ ル プ を 表 示 し ま す 。
-a
file
--add
file 仮 想 マ シ ン か ら デ ィ ス ク イ メ ー ジ の file を 追 加 し ま す 。 デ ィ ス ク イ メ ー ジ の 形 式 は 自 動 検 知 さ れ ま す 。 こ れ を 上 書 き し て 強 制 的 に 特 定 の 形 式 を 使 用 す る 場 合 、 --format=.. オ プ シ ョ ン を 使 用 し ま す 。
-a URI
--add URI
リ モ ー ト デ ィ ス ク を 追 加 し ま す 。 "リ モ ー ト ス ト レ ー ジ の 追 加 " in guestfish(1) 参 照 。
--blocksize=512
--blocksize=4096
--blocksize

This parameter sets the sector size of the disk image. It affects all explicitly added subsequent disks after this parameter. Using --blocksize with no argument switches the disk sector size to the default value which is usually 512 bytes. See also "guestfs_add_drive_opts" in guestfs(3).

-c URI
--connect
URI

libvirt を 使 用 し て い る と 、 指 定 さ れ た URI に 接 続 し ま す 。 省 略 す る と 、 デ フ ォ ル ト の libvirt ハ イ パ ー バ イ ザ ー に 接 続 し ま す 。 ゲ ス ト の ブ ロ ッ ク デ バ イ ス を 直 接 指 定 し て い る と ( (-a)) 、 libvirt は 何 も 使 用 さ れ ま せ ん 。

-d guest
--domain
guest 名 前 付 き の libvirt 仮 想 マ シ ン か ら す べ て の デ ィ ス ク を 追 加 し ま す 。 名 前 の 代 わ り に 仮 想 マ シ ン の UUID を 使 用 で き ま す 。
--format=raw|qcow2|..
--format

-a オ プ シ ョ ン は 標 準 状 態 で デ ィ ス ク イ メ ー ジ の 形 式 を 自 動 検 知 し ま す 。 こ れ を 使 用 す る こ と に よ り 、 コ マ ン ド ラ イ ン で 後 続 の -a オ プ シ ョ ン の デ ィ ス ク 形 式 を 強 制 的 に 指 定 で き ま す 。 引 数 な し で --format を 使 用 す る こ と に よ り 、 後 続 の -a オ プ シ ョ ン に 対 し て 自 動 検 知 に 戻 せ ま す 。 例 :

virt-alignment-scan --format=raw -a disk.img

forces raw format (no auto-detection) for disk.img.

virt-alignment-scan --format=raw -a disk.img --format -a another.img

forces raw format (no auto-detection) for disk.img and reverts to auto-detection for another.img. 仮 想 マ シ ン の デ ィ ス ク イ メ ー ジ が 信 頼 で き な い raw 形 式 で あ る 場 合 、 デ ィ ス ク 形 式 を 指 定 す る た め に こ の オ プ シ ョ ン を 使 用 す べ き で す 。 こ れ に よ り 、 悪 意 の あ る 仮 想 マ シ ン に よ り 起 こ り 得 る セ キ ュ リ テ ィ 問 題 を 回 避 で き ま す (CVE-2010-3851)。

-P nr_threads

Since libguestfs 1.22, virt-alignment-scan is multithreaded and examines guests in parallel. By default the number of threads to use is chosen based on the amount of free memory available at the time that virt-alignment-scan is started. You can force virt-alignment-scan to use at most "nr_threads" by using the -P option.

Note that -P 0 means to autodetect, and -P 1 means to use a single thread.

-q

--quiet

Don’t produce any output. Just set the exit code (see "EXIT STATUS" below).

--uuid 名 前 の 代 わ り に UUID を 表 示 し ま す 。 仮 想 マ シ ン が マ イ グ レ ー シ ョ ン ま た は 名 前 変 更 さ れ た と き 、 ま た は 偶 然 2 つ の 仮 想 マ シ ン が 同 じ 名 前 を 持 つ と き 、 仮 想 マ シ ン に 使 用 さ せ る た め に 有 用 で す 。 す べ て の libvirt 仮 想 マ シ ン を 一 覧 表 示 す る と き (-a-d オ プ シ ョ ン が 指 定 さ れ て い な い と き )、 こ の オ プ シ ョ ン の み が 適 用 さ れ ま す 。

-v

--verbose デ バ ッ グ 用 の 冗 長 な メ ッ セ ー ジ を 有 効 に し ま す 。

-V

--version バ ー ジ ョ ン 番 号 を 表 示 し て 、 終 了 し ま す 。

-x

libguestfs API 呼 び 出 し の ト レ ー ス を 有 効 に し ま す 。

推 奨 さ れ る ア ラ イ メ ン ト

Windows 2008 お よ び ca.2010 以 前 の Linux よ り も 古 い オ ペ レ ー テ ィ ン グ シ ス テ ム は 、 512 バ イ ト の セ ク タ ー 容 量 で セ ク タ ー 63 に 、 第 1 パ ー テ ィ シ ョ ン の 第 1セ ク タ ー を 配 置 し な け れ ば い け ま せ ん 。 こ れ は 古 く か ら の 障 害 に よ る も の で す 。 ド ラ イ ブ は BIOS に シ リ ン ダ ー /ヘ ッ ド /セ ク タ ー (CHS) の 配 置 を 通 知 す る 必 要 が あ り ま す 。 配 置 は 最 近 の ド ラ イ ブ に お い て は 意 味 が あ り ま せ ん が 、 必 ず ト ラ ッ ク あ た り 63 セ ク タ ー を 持 つ こ と を と き ど き 通 知 し ま す 。 そ の た め 、 オ ペ レ ー テ ィ ン グ シ ス テ ム は セ ク タ ー 63 に あ る 、 第 2 "ト ラ ッ ク " の 先 頭 に あ る 第 1 パ ー テ ィ シ ョ ン に 置 か れ ま す 。 ゲ ス ト OS が 仮 想 化 さ れ て い る と き 、 ホ ス ト オ ペ レ ー テ ィ ン グ シ ス テ ム お よ び ハ イ パ ー バ イ ザ ー は 以 下 の ど れ か に ア ラ イ メ ン ト さ れ て い る こ と が 好 ま し い で し ょ う 。

512 バ イ ト ホ ス ト OS が ハ ー ド デ ィ ス ク の パ ー テ ィ シ ョ ン に 直 接 ロ ー カ ル ス ト レ ー ジ を 使 用 し て 、 ハ ー ド デ ィ ス ク が 512 バ イ ト の 物 理 セ ク タ ー を 持 っ て い る 場 合 。

4 K バ イ ト

4K バ イ ト の 物 理 セ ク タ ー を 持 つ 新 規 ハ ー ド デ ィ ス ク に お け る ロ ー カ ル ス ト レ ー ジ 向 け 。 4K バ イ ト の ブ ロ ッ ク 容 量 を 持 つ フ ァ イ ル シ ス テ ム に お け る フ ァ イ ル 形 式 の ス ト レ ー ジ 向 け 。 も し く は 、 何 種 類 か の ネ ッ ト ワ ー ク ス ト レ ー ジ ( NAS) 向 け 。

64 K バ イ ト ハ イ エ ン ド の NAS 向 け 。 い く つ か の NetApp ハ ー ド ウ ェ ア に 最 適 な ブ ロ ッ ク サ イ ズ で す 。

1 M バ イ ト 以 下 の "1 MB パ ー テ ィ シ ョ ン ア ラ イ メ ン ト " 参 照 。

基 礎 と な る ス ト レ ー ジ に 正 し く ア ラ イ メ ン ト さ れ て い な い パ ー テ ィ シ ョ ン は 余 計 な I/O を 引 き 起 こ し ま す 。 た と え ば :

sect#63
┌──────────────────────────┬ ─ ─ ─ ─
│ guest │
│ filesystem block │
─ ┬──────────────────┴──────┬───────────────────┴─────┬ ─ ─
│ host block │ host block │
│ │ │
─ ┴─────────────────────────┴─────────────────────────┴ ─ ─ こ の 例 で は 、 4K ブ ロ ッ ク が 読 み 込 ま れ る た び に 、 ホ ス ト に あ る 2 つ の ブ ロ ッ ク に ア ク セ ス す る 必 要 が あ り ま す ( そ の た め I/O が 2 倍 に な り ま す ) 。 仮 想 マ シ ン の 4K ブ ロ ッ ク が 書 き 込 ま れ る と き 、 ま ず 2 つ の ホ ス ト ブ ロ ッ ク を 読 み 込 む 必 要 が あ り 、 古 い デ ー タ と 新 し い デ ー タ が 結 合 さ れ 、 2 つ の ブ ロ ッ ク が 書 き 込 ま れ ま す ( 4 倍 の I/O) 。

Linux ホ ス ト ブ ロ ッ ク 新 し い バ ー ジ ョ ン の Linux カ ー ネ ル は 、 物 理 ブ ロ ッ ク 容 量 、 論 理 ブ ロ ッ ク 容 量 お よ び 最 小 か つ 推 奨 の I/O サ イ ズ を 明 ら か に し ま す 。 一 般 的 な 512 バ イ ト セ ク タ ー の ハ ー ド デ ィ ス ク 向 け :

$ cat /sys/block/sda/queue/hw_sector_size
512
$ cat /sys/block/sda/queue/physical_block_size
512
$ cat /sys/block/sda/queue/logical_block_size
512
$ cat /sys/block/sda/queue/minimum_io_size
512
$ cat /sys/block/sda/queue/optimal_io_size
0 新 し い 4K バ イ ト セ ク タ ー の ハ ー ド デ ィ ス ク 向 け :

$ cat /sys/block/sda/queue/hw_sector_size
4096
$ cat /sys/block/sda/queue/physical_block_size
4096
$ cat /sys/block/sda/queue/logical_block_size
4096
$ cat /sys/block/sda/queue/minimum_io_size
4096
$ cat /sys/block/sda/queue/optimal_io_size
0

NetApp LUN 向 け :

$ cat /sys/block/sdc/queue/logical_block_size
512
$ cat /sys/block/sdc/queue/physical_block_size
512
$ cat /sys/block/sdc/queue/minimum_io_size
4096
$ cat /sys/block/sdc/queue/optimal_io_size
65536

NetApp は 、 最 小 の 4K I/O サ イ ズ よ り 好 ま し い 512 バ イ ト ア ク セ ス が 可 能 で す ( し か し 、 非 常 に 効 率 が 悪 い で す ) 、 し か し 最 適 な I/O サ イ ズ は 64K で す 。 こ れ ら の 数 字 の 意 味 に 関 す る 詳 細 は http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Storage_Administration_Guide/newstorage-iolimits.html を 参 照 し て く だ さ い 。

[4K ド ラ イ ブ デ ー タ を 提 供 し て く れ た Matt Booth に 感 謝 し ま す 。 NetApp の デ ー タ と 追 加 情 報 を 提 供 し て く れ た Mike Snitzer に 感 謝 し ま す 。 ]

1 MB パ ー テ ィ シ ョ ン ア ラ イ メ ン ト
Microsoft は Windows Server 2008 以 降 、 す べ て の パ ー テ ィ シ ョ ン に 対 し て デ フ ォ ル ト の ア ラ イ メ ン ト と し て 1 MB を 選 択 し ま し た 。 Linux は こ れ に 従 っ て き ま し た 。 仮 想 マ シ ン に お い て 512 バ イ ト の セ ク タ ー と 仮 定 す る と 、 セ ク タ ー 2048 に 開 始 さ れ て い る 最 初 の パ ー テ ィ シ ョ ン を 参 照 し て く だ さ い 。 ま た 、 ( も し あ れ ば ) 後 続 の パ ー テ ィ シ ョ ン は 2048 セ ク タ ー の 倍 数 か ら 始 ま り ま す 。

1 MB ア ラ イ メ ン ト は す べ て の 現 行 ア ラ イ メ ン ト 要 求 (4K, 64K) と 互 換 性 が あ り ま す 。 ま た 、 物 理 ブ ロ ッ ク 容 量 に お け る 将 来 的 な 拡 張 の 余 地 を 残 し ま す 。 ア ラ イ メ ン ト の 設 定 法
virt-resize(1) can change the alignment of the partitions of some guests. Currently it can fully align all the partitions of all Windows guests, and it will fix the bootloader where necessary. For Linux guests, it can align the second and subsequent partitions, so the majority of OS accesses except at boot will be aligned.

Another way to correct partition alignment problems is to reinstall your guest operating systems. If you install operating systems from templates, ensure these have correct partition alignment too. 古 い バ ー ジ ョ ン の Windows は 、 次 の NetApp ド キ ュ メ ン ト に 有 用 な 情 報 が あ り ま す : http://media.netapp.com/documents/tr-3747.pdf

For Red Hat Enterprise Linux ≤ 5, use a Kickstart script that contains an explicit %pre section that creates aligned partitions using parted(8). Do not use the Kickstart "part" command. The NetApp document above contains an example.

終 了 ス テ ー タ ス

こ の プ ロ グ ラ ム は 以 下 を 返 し ま す :

0 正 常 終 了 、 す べ て の パ ー テ ィ シ ョ ン が 最 高 の パ フ ォ ー マ ン ス の た め に ≥ 64K に 配 置 さ れ て い ま す

1 デ ィ ス ク イ メ ー ジ ま た は 仮 想 マ シ ン の ス キ ャ ン 中 に エ ラ ー が 発 生 し ま し た

2 正 常 終 了 、 い く つ か の パ ー テ ィ シ ョ ン が ハ イ エ ン ド の ネ ッ ト ワ ー ク ス ト レ ー ジ に お い て パ フ ォ ー マ ン ス の 悪 い < 64K の ア ラ イ メ ン ト を 持 ち ま す

3 正 常 終 了 、 い く つ か の パ ー テ ィ シ ョ ン が 多 く の ハ イ パ ー バ イ ザ ー に お い て パ フ ォ ー マ ン ス の 悪 い < 4K の ア ラ イ メ ン ト を 持 ち ま す

関 連 項 目

guestfs(3), guestfish(1), virt-filesystems(1), virt-rescue(1), virt-resize(1), http://libguestfs.org/.

著 者

Richard W.M. Jones http://people.redhat.com/~rjones/

COPYRIGHT

Copyright (C) 2011 Red Hat Inc.

LICENSE

BUGS

To get a list of bugs against libguestfs, use this link: https://bugzilla.redhat.com/buglist.cgi?component=libguestfs&product=Virtualization+Tools

To report a new bug against libguestfs, use this link: https://bugzilla.redhat.com/enter_bug.cgi?component=libguestfs&product=Virtualization+Tools

When reporting a bug, please supply:

The version of libguestfs.

Where you got libguestfs (eg. which Linux distro, compiled from source, etc)

Describe the bug accurately and give a way to reproduce it.

Run libguestfs-test-tool(1) and paste the complete, unedited output into the bug report.