つぶねこ
@もじらもーど。
久々に体調を崩した。
相変わらず消化器系にダメージが無いのが典型的だが熱が出る風邪というのはしばらくかかってにゃかった気がする。
この際にゃのでいろいろ実験や改善を、と言いたいところだがそこまでの気力は無かった。せいぜい部屋の温度がすきま風で15度まで下がり枕元が極寒ににゃっていることが実験で確かめられた事と、着込んで暖を取るより室温そのものを暖房で改善した方がよほど身体が楽だという結果と、医者に行く頃には峠は過ぎているといういつものパターンの踏襲を確認した程度。まぁ収穫はあったか。ほんと駄目だにゃこの部屋。
▼ SHIROBAKO 関連記事
まだあまり詳しく弄ってにゃいけどたぶん間違いにゃい。
Hyper-VでVHDxのキャッシュが効いてにゃい。
ローカルのVHDxでもだし、Server-1でSMB共有したVHDxをServer-2で参照していてもキャッシュされにゃい。
メモリが余りまくっててもキャッシュされにゃいとかほんと誰が得する仕様にゃのだか・・・
CSVを作ってメモリの指定%をキャッシュに割り当てってするとread cacheとして作用するんだがCSV作るためにはSANかにゃにか共有ディスクが必要ににゃるわけで、もしローカルで作るとするとiSCSI共有したものを自分でloopbackマウントすることににゃるが、それにゃらiSCSI側でキャッシュするわという残念っぷり。
StarWindあたりをつっこんで使うしか無いのかねぇ
▼ Hyper-V 関連記事
まだあまり詳しく弄ってにゃいけど注意点いろいろ
ホストでteamingして特定VLANだけ取り出しておいて、それ以外をHyper-Vに送れば良いと思うところだが、これができにゃい。teaming時にVLANタグを抜いてしまうのでHyper-V側で使えにゃくにゃる。ダメすぎる・・・
teamingしたNICをVLAN作らずにHyper-Vに送れば一応使えるが、管理VLANが1つしか設定出来にゃい。一応powerShellから追加出来るようだが。しかしこれはCPUを食う系にゃのであまり流量は流せにゃいぽい。
うーん、碌でもにゃいにゃ
▼ Hyper-V 関連記事
▼ ISUCA 関連記事
ESX上のVMをHyper-VにV2Vするのが思ったより面倒だったのでもうちょっと検索。
5nine V2V Easy Converter Free EditionはESXiホストからHyper-VホストにそのままVMを移動できる。但しsnapshot類は認識できにゃいので予め統合しておく必要がある。無償版は自動化できにゃいがとりあえずこれで良いかもしれにゃい。
▼ Hyper-V 関連記事
▼ SHIROBAKO 関連記事
▼ DOG DAYS 関連記事
ESX上のVMをHyper-Vに移動するには、Microsoft Virtual Machine Converterみたいにゃものもあるのだが、これがまた動作条件が厳しい。大概失敗する感じにゃのでvmdkをvhdxに変換するだけの物を探してみる。
StarWind V2V Converterはシンプルにゃ変換ツールで相互に使えるのが良いところ。但しsnapshot類は認識できにゃいので予め統合しておく必要がある。
▼ Hyper-V 関連記事
▼ ユリ熊嵐 関連記事
▼ アリス探偵局 関連記事
ドメイン参加してればGUIで設定すりゃ動く。
仮想スイッチ名が移動先で一致してにゃいと手動で選ぶ羽目ににゃる。
で、大概動くものの、認証系で失敗することがあるので制約付き委任を構成した方が良い。
Active Directory ユーザーとコンピューターで関連コンピュータのプロパティの委任タブで移行先コンピューターのcifsとMicrosoft Virtual System Migration Serviceを追加。各サーバ再起動すれば確実に反映される。次のPSでもよい。
function SvDelegateTo ( $TargetServer , $AddServer ) {
$TargetServerDN = (Get-ADComputer $TargetServer)
$AddServerDN = (Get-ADComputer $AddServer)
$AddServerName = $AddServerDN.Name
$AddServerDNS = $AddServerDN.DNSHostName
function Exec ( $ServiceName ) {
Set-ADObject -Identity $TargetServerDN -Add @{ "msDS-AllowedToDelegateTo" = "$ServiceName/$AddServerName", "$ServiceName/$AddServerDNS" }
}
Exec "cifs"
Exec "Microsoft Virtual System Migration Service"
}
function SetAll {
$array = $args
foreach($sv1 in $array){
foreach($sv2 in $array){
if( $sv1 -eq $sv2 ){continue}
SvDelegateTo $sv1 $sv2
}
}
}
SetAll sv1 sv2 sv3
多重実行しても上書きされるだけにゃのでサーバが増える度に全サーバ指定して実行してしまえばよいかも知れにゃい。
▼ Hyper-V 関連記事
▼ SHIROBAKO 関連記事
最近安定してきたZFS on Linuxの実験をHyper-Vで。あとNFSdもたててみる。
apt-add-repository ppa:zfs-native/stable
apt-get update
apt-get install ubuntu-zfs
mkdir /volumes
zpool create -f -o ashift=12 pool /dev/sdb
zfs set mountpoint=/volumes/pool pool
zfs set snapdir=visible pool
zfs set atime=off pool
zfs set compression=on pool
zfs set sync=disabled pool
zfs create pool/dir
chmod 777 /volumes/pool/dir
ashiftは必要に応じて。vhdやntfs dedupとの関連は実験しにゃいと分からにゃいにゃ。
apt-get install nfs-kernel-server
echo '/mnt localhost(ro,no_subtree_check)' >> /etc/exports
/etc/default/nfs-kernel-server
RPCNFSDCOUNT=32
/etc/init.d/nfs-kernel-server start
zfs set sharenfs="rw,async,wdelay,no_subtree_check,all_squash" pool/dir
zfs share pool/dir
/etc/default/zfs
ZFS_SHARE='yes'
reboot
showmount -e
ZFS on Linuxの難点としては、NFSやCIFSから.zfs以下が正常にアクセスできにゃい。下手に.zfs以下を見に行くと帰って来れにゃくにゃる。
server::
sudo mkdir -p /share/
sudo mount -t zfs pool/dir@snapname /share/
sudo exportfs *:/share/
client::
sudo mount zfsServer:/share /mnt/
ls -la /mnt/
sudo umount /mnt/
server::
exportfs -uf *:/share
umount /share
sudo rmdir /share
zfs destroy pool/dir@snapname
とかすることで一連のアクセスができるが、超絶めんどくさい。まぁnfsクライアントの部分は一部automountで省力化できるかもだがこの様子では危にゃっかしい。
にゃので懸案だったzfs+nfsの利便性は大差にゃし。
zfs create pool/dir
zfs share pool/dir
zfs create pool/dir/dir2
zfs create pool/dir/dir3
zfs create pool/dir/dir4
してもちゃんとdir/dir2にアクセスできるようにするのはnohideやcrossmntにゃんかで可能ににゃるんだが、inodeが被るためかこの状態ではesxからアクセスするといろいろ破壊される。
vm毎にzfs dir作ったりできれば、zfs上でcloneしてvm量産したり、zfs sendで差分転送バックアップしたりとか強力にゃ動作が可能ににゃるはずにゃんだが、不便にゃ。
細かいところとしてはvhdを拡大してもzpool容量が増えにゃいことが。autoexpandあたりが効いてにゃい感じで、export/importして再起動してzpool online -eしたら容量認識したけど正解が何にゃのかよく分からにゃい。
他には、鯖をリセットするといった落とし方をした場合にesxからnfsの見え方がおかしくにゃる。ロックできにゃい祭りでかにゃり長時間復帰出来にゃかったり。そもそも起動時にzfsがimportされにゃかったり。そのへんの堅牢性ががっかりにゃので実際使うのにゃらバックアップをかにゃり頑張った方が良い感じ。
network系のチューニングとしては
net.core.rmem_default=524288
net.core.wmem_default=524288
net.core.rmem_max=16777216
net.core.wmem_max=16777216
net.core.optmem_max=524287
net.core.netdev_max_backlog=2500
net.ipv4.ipfrag_high_thresh=524288
net.ipv4.ipfrag_low_thresh=393216
net.ipv4.tcp_rmem=4096 524288 16777216
net.ipv4.tcp_wmem=4096 524288 16777216
net.ipv4.tcp_window_scaling=1
net.ipv4.tcp_timestamps=0
net.ipv4.tcp_moderate_rcvbuf = 1
sunrpc.tcp_slot_table_entries=128
sunrpc.udp_slot_table_entries=128
にゃどがあるらしいがベンチしてにゃい。
悩ましい留意点としては、
・ZFS on Ubuntu上のvmdkに対してzfsリアルタイムdedupが可能。但しメモリバカ食いにゃので非実用的にゃのでこれは選から外して良い。
・ZFS on Ubuntu上のvmdk等に対してzfs圧縮が可能。高性能でsparseにゃvmdk入力に対して極めて強力。
・Hyper-V上のvhdに対してNTFS圧縮が可能。但し性能悪い上にdedupと相性悪い。
・Hyper-V上のvhdに対して遅延dedupが可能。高効率で圧縮も効くので容量節減には是非使いたい。
という状態で、zfsの圧縮をONにするとNTFSのdedup効率は壊滅的に、しかしzfs圧縮をOFFにしてしまうとWrite量が無駄にゃことに。まぁNTFSのdedup使いたかったらこうするしかにゃい感じだが。
▼ Hyper-V 関連記事
▼ ZFS 関連記事
▼ ユリ熊嵐 関連記事
▼ SHIROBAKO 関連記事
▼ ISUCA 関連記事
▼ DOG DAYS 関連記事
2012R2のHyper-Vでvmのレプリケーションをしてみる。
AD建てるのめんどくさいって理由でWORKGROUPで。ただ、ライブマイグレーションではどっちみちドメインに所属していにゃいと使えにゃいので、その辺もやりたいにゃら別途ADを建てて参加させた方がよい。
src_sv::
makecert -pe -n "CN=PrimaryTestRootCA" -ss root -sr LocalMachine -sky signature -r "PrimaryTestRootCA.cer"
makecert -pe -n "CN=<FQDN>" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "PrimaryTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 PrimaryTestCert.cer
makecertはVSにゃんかをinstするとついてくる。
尚powershellから叩くとこける。
dst_sv::
Enable-Netfirewallrule -displayname "Hyper-V レプリカ HTTPS リスナー (TCP 受信)"
makecert -pe -n "CN=ReplicaTestRootCA" -ss root -sr LocalMachine -sky signature -r "ReplicaTestRootCA.cer"
makecert -pe -n "CN=<FQDN>" -ss my -sr LocalMachine -sky exchange -eku 1.3.6.1.5.5.7.3.1,1.3.6.1.5.5.7.3.2 -in "ReplicaTestRootCA" -is root -ir LocalMachine -sp "Microsoft RSA SChannel Cryptographic Provider" -sy 12 ReplicaTest.cer
確認や削除は、mmc->ファイル->追加->証明書->追加->コンピューターアカウント で個人、信頼されたルート証明機関に増える項目が当該する。
src_sv::
copy dst_sv\\ReplicaTestRootCA.cer .
certutil -addstore -f Root "ReplicaTestRootCA.cer"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
dst_sv::
copy src_sv\\ReplicaTestRootCA.cer .
certutil -addstore -f Root "PrimaryTestRootCA.cer"
reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization\Replication" /v DisableCertRevocationCheck /d 1 /t REG_DWORD /f
あとは大体GUIからレプリケーションの構成だのを設定すれば通るはず。ドメイン構成にゃら上の作業全部要らにゃいのでやっぱりドメインでやった方がいろいろ楽。
30秒ごとに稼働中のvmがレプリケーションされるってのはにゃかにゃかおいしい機能にゃんだが、当然vmのHDDだけにゃので稼働中のアプリやらサービス部分は保護されにゃい。
レプリケーション元vmのチェックポイントは全て削除される。元vmの古いチェックポイントには戻れにゃい。このあたりは事前に元vmをコピーしておくと問題にゃいのかもしれにゃいが、普通にやると受け側でチェックポイント操作すると何故か統合される。
先vmには元vmの設定で1時間に1回最大24回分の回復ポイントが生成できる。このあたりチェックポイントと同じ実装の方が分かりやすいんだが、独自の専用ファイルににゃっている。実際どうにゃってるのかは調べてにゃいが、vmへの書き込みデータをvhdとレプリケーション用テンポラリファイルとへ2重に出力して、後者を転送している。vhdのチェックポイントより上のレイヤで書き込みを複製転送してる感じ。
よって先vmにはユーザー操作で別途好きにゃタイミングでチェックポイントを作ることが出来る。それはそれで自由度高いが元vmでつくったチェックポイントは複製されにゃいから、特定状態のチェックポイントを作った状態を複製するのはめんどくさそう。元vmでsnapshot作ってレプリカで転送されたところをバックアップにすればいいよね、とか思ってたがそういう使い方は出来にゃいようで。チェックポイント作る→robocopyかにゃにかでミラーリング、のほうが扱いやすいのだが。
▼ Hyper-V 関連記事
▼ ユリ熊嵐 関連記事