名 前
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. |