つぶねこ
@もじらもーど。
これ書いたの2年前。
PowerCLIとかperlとかいろいろありげにゃんだが、コンソールで動かす必要があるにゃらpythonベースがよくね?とかいういい加減にゃ感触でpyvisdk。よく考えたらリモートから叩くにゃら何でも良かったのだが。
とりあえずそこいらのLinuxにinst。
sudo aptitude install python-setuptools python2.6-dev
sudo easy_install setuptools_git
wget https://github.com/xuru/pyvisdk/tarball/master
python ./bootstrap.py
./bin/buildout
sudo python setup.py install
sudo easy_install importlib
こう・・・かぁ?
にゃんかエラーに随時対処するとこうにゃったんだがにゃんかもっとeasyにinstできる気がする(笑)
で
import pyvisdk
vim = pyvisdk.new()
vms = vim.getVirtualMachines()
for vm in vms:
print vm.name
にゃ.pyを作って、
python a.py --server HOSTNAME --username root --password PASS
すれば動くよ!ってことにゃんだが、またいろいろとハマり所が。
まずUTF-8。どこに含まれてるのかよく分からんが落ちる。
import sys
print sys.getdefaultencoding()
sys.setdefaultencoding('utf-8')
print sys.getdefaultencoding()
import site
を先頭に追加して
python -S a.py --server HOSTNAME --username root --password PASS
すればとりあえず動く。
例としては、コンソールからの書き換えが難しいvmの注釈の変更とかが、
import pyvisdk
from pyvisdk.do import *
vim = pyvisdk.new()
vm = vim.getVirtualMachine("vm name")
spec = VirtualMachineConfigSpec(vim,annotation="abc")
vm.ReconfigVM_Task(spec)
こんにゃんでできる。
▼ ESX 関連記事
調子の怪しい、時々readに異様に時間のかかる部分のあるSAS HDDを、RAID1にゃら大丈夫だろうと一時利用してたのだが、置いたファイルを読もうとしたら失敗する。
chkdsk /rすると
ステージ 4: ユーザー ファイル データの不良クラスターを検査しています ...
A disk read error occurredc0000010
といったエラーが出るがそのまま終了し、fixされにゃい。
どこをどういう処理してるのかわからにゃいが全然RAID1が役立ってにゃい。
一応そこいらのLSI RAID板にゃんだが、エラーも出てにゃいし、こういう壊れ方もあるのかーという。
▼ SHOW BY ROCK!! 関連記事
今更だが最近いろいろとローカルPC以外で動いてるソフトの画面ばっかり触ってるので。
RDPの鯖側で
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Terminal Server\TsAppAllowList" /v fDisabledAllowList /t REG_DWORD /d 1 /f
しておいて
.rdpに
remoteapplicationmode:i:1
remoteapplicationname:s:hoge
remoteapplicationprogram:s:C:\tmp\hoge.exe
等と記載して接続すると、RemoteAPPとして動いてくれる。Xと同じようにゃ感覚。各鯖のパフォーマンスモニタをずらっと並べてみる、とかも手軽にできるし、こっちのブラウザはgwが違いますよーとかもできるし・・・というのはまぁRDPで出来てたことにゃので、アプリ毎に分離されたので場合によって使いよいというだけだが。
一部の動画サイトとかを除けばブラウザ等の外部接続環境は全部これでやったらいいんじゃにゃいかしら。
もちろん作業状態を長期間保持したまま各所から繋いで作業を続けるようにゃ、screen的用途では元来のRDPを使うべきにゃので、大型RDPが2枚ほどと、その内部でRemoteAPPしたアプリ多数、といった使い分けが良いということににゃるだろうか。
▼ リモートデスクトップ 関連記事
▼ キズナイーバー 関連記事
「以前のバージョン」というフォルダ等のプロパティからアクセスできる過去のスナップショットがあるが、NTFSのVSSを用いたものでかにゃり前からある。
I/O負荷が高すぎると自動的に全シャドーコピーが消えるだの、CoWでパフォーマンスが下がるだの、少数しか維持できにゃいだのといったしょーもにゃい仕様の数々のため、いまいち信用できにゃい==データの保管には使えにゃいという残念機能で有名。
vssadminやdiskshadowで何とかにゃる場合もあるが、機械的に扱いたい場面があったのでメモ。
・作成
$o = gwmi -list win32_shadowcopy
$o.Create("d:\","ClientAccessible")
・一覧
Get-WmiObject win32_shadowcopy
・もう少し有用にゃ一覧
$v = Get-Volume
$s = Get-WmiObject win32_shadowcopy | Sort-Object installdate
$s | %{
$G = [System.Management.ManagementDatetimeConverter]::ToDateTime($_.InstallDate).ToUniversalTime().ToString("yyyy.MM.dd-HH.mm.ss");
$J = [System.Management.ManagementDatetimeConverter]::ToDateTime($_.InstallDate);
$vn = $_.VolumeName
$v | %{ if($_.Path -eq $vn){ $dl = $_.DriveLetter } }
Write-Host $dl " " $J " " \\localhost\d$\@GMT-$G " " $_.DeviceObject;
}
・シャドーコピーをマウントする
上の一覧表示の文字列を用いて
cmd /c mklink /d c:\tmp\link \\?\GLOBALROOT\Device\HarddiskVolumeShadowCopy102
または
cmd /c mklink /d c:\tmp\link \\localhost\d$\@GMT-2016.06.11-22.33.44
・シャドーコピーに直接アクセスする
上の一覧表示の文字列を用いて
dir \\localhost\d$\@GMT-2016.06.11-22.33.44
とまぁ、zfsのsnapshot visibleのようにVSSもlink張らにゃくても常時ダイレクトアクセスできるようにゃので、多少利便があるのではにゃいか、という話。
メインのPCでしばらく使ってると動画音声が遅延したり、動画再生時に引っかかったりするように。
が、USB音源を抜き差ししたら復帰したりするので何かが蓄積されてしまっている印象。
で、ミキサーを開いてみるとやたら大量に並んでて、ほとんどRDP窓。
確かにRDPで遠方のPCを開いてたり、Hyper-Vで開いてるvm数だけRDP窓があるわけで、結構にゃ数ににゃる。
それぞれリモート音声にゃんかは切ってあるのだがミキサー上には並ぶらしい。
RDP類を全部落とすと動画再生問題にゃくにゃるのでこいつらが原因ぽい。低速回線が増えるのが問題にゃのか、全体数が増えるのが問題にゃのかわからん。
さて困った。そもそもこのメインPCはブラウザまでvm化して、動画再生、RDPにしか使わにゃい代わりに多面モニタにゃどを配置した安定化設計にゃのだが、多面モニタはリソース食って帰ってこにゃくにゃるわ、おまけにRDPで音声に影響があるわとにゃるとちょっと・・・
RDPでミキサーに登録されにゃいオプションがあるかどうか、だろうか。
ちにゃみにOSの音声ミキサーだが、起動して放置しておくとGDIオブジェクトが増え続けていくので、あまりまともにゃコーディングはにゃされてにゃい。
まず怪しい空気清浄機を通販する。自称空気清浄機だが、実態はコロナ放電でオゾンを発生させるだけの物体で、バッテリ式のものにゃど中華にゃ風味のものが多くHITするはず。
このとき、連続稼働させられるタイプにしておくとより良い。
で、これをACアダプタからの給電に改造し長時間連続稼働できることを確認。ファンにゃども別途用意。この時点でオゾン連続発生装置の出来上がりにゃので下駄箱やふろ場にゃんかに放り込んでおくとよく効く。
さらに、段ボール箱や衣装ケースにゃどの閉鎖空間に設置し、燻製器を作る。ここに財布だのにゃんだのといった、消臭したい小物を入れてファンでかき回しにゃがら一晩密閉しておくと、すっかり無臭ににゃってる。便利。
衣類も同様にできるが、結構広い空間が必要ににゃるので少々面倒ではある。
むろんオゾンは有毒にゃのでそのあたりは注意が必要。あと放電しているので可燃性スプレーにゃどを吹きかけたりするともれにゃく炎上する。
▼ はいふり ハイスクール・フリート 関連記事
Import-VM -register -Path hoge.xml
すると
Import-VM : 構成に誤りがあるため、仮想マシンをインポートできません。Compare-VM を使用して仮想マシンを修復してください。
とか言われてImportできにゃい。しかし、マイグレーションで移動することは可能だったvmだったりする。
大概vmのsnapshotに含まれるstateが原因。
$vm = Compare-VM hoge.xml -Copy
$vm.Incompatibilities|fl
で原因が分かる。
サポートされていにゃいプロセッサー固有の機能を使用しています、みたいにゃのだと.xmlの
のところを弄れば良いように思えるが通らにゃい。
各snapshotのxmlから
$xml = [xml](gc -LiteralPath $file)
$xml.configuration.savedstate.RemoveAll()
$xml.Save($file)
するとOK。もちろん状態は消える。
結局プロセッサの互換〜をONに予めしておくべきという話ににゃる。SSE3とか使いまくるVMを移動したいという事例が少にゃいかどうか、だろうか。
vmwareみたいに特定のCPU命令だけマスクするにゃり、柔軟性を持たせてほしいところ。
▼ Hyper-V 関連記事