大雑把にゃレシピメモ。改善の余地有り。
2012R2から見えるドライブを用意。NTFSかREFSで確保。キャッシュON。物理ディスクそのまま確保でも良いとは思うが怖いので。
StartwindでThick最大容量を確保。8G以上バッファ。あまり効率的じゃ無い使われ方してるけどそれにゃりに効果があるという微妙にゃ位置付け。WriteBackにするかどうかは大変微妙。電源断で確実に死ぬくらいの覚悟でやったほうがいい。2次キャッシュ使えるにゃら追加。
iSCSIイニシエーターで127.0.0.1から追加。お気に入りに入るので再起動後も自動接続される。
ディスクの管理でNTFS4Kで確保。キャッシュON。
dedup on。VDI 0日。
Import-Module ServerManager
Add-WindowsFeature -name FS-Data-Deduplication
Import-Module Deduplication
Enable-DedupVolume -Volume X: -UsageType HyperV
Set-DedupVolume X: -OptimizeInUseFiles -OptimizePartialFiles -MinimumFileAgeDays 0
フォルダ作るとかしてSMB共有。
セキュリティに関心が無くACL権限で悩みたくにゃい場合はeveryone:Fしとく。
とまぁこんにゃ感じで。
キャッシュの効きは明らかに悪いのだが、Startwindでわざわざloopback共有しにゃいと一切キャッシュされにゃいという状況にゃので、これでもマシという・・・
vmをCloneして、細かい情報をvm毎に付与して、各vmはそれを参照して自力で最終setupを行う、みたいにゃ事をするのに、少にゃくとも自分のvm名くらいは拾えにゃいといけにゃいが、どうやるのかという。
でホストから当該vmに情報書き込むには、
$VSManagementService = gwmi -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization\v2" -computername $HyperVServer
$VSManagementService.AddKvpItems($Vm,hoge)
みたいにゃのが使えて、
AddKvpItems, ModifyKvpItems, RemoveKvpItemsにゃんかがある。ここで追加したkey,valueはvmの
HKLM\SOFTWARE\Microsoft\Virtual Machine\External
に追加される。
一方vm側で、
HKLM\SOFTWARE\Microsoft\Virtual Machine\Guest
に書き込んだkey,valueは
$VSManagementService = gwmi -class "Msvm_VirtualSystemManagementService" -namespace "root\virtualization\v2" -computername $HyperVServer
$query = "Associators of {$Vm} Where AssocClass=Msvm_SystemDevice
ResultClass=Msvm_KvpExchangeComponent"
$Kvp = gwmi -namespace "root\virtualization\v2" -query $query -computername $HyperVServer
$Kvp.GuestIntrinsicExchangeItems
$Kvp.GuestExchangeItems
みたいに取得出来る。
ゲストがWinじゃにゃい場合とかはお察しである。