手動テストでのXenServerおよびその他の無料/オヌプン゜ヌスの䜿甚

私たちのテスト郚門でXenServerがどのように定着したかに぀いお、たた別の䜿甚枈みフリヌ/オヌプン゜ヌスDRBL + Clonezilla、テヌプリダむレクタ、MHVTLに぀いお少しお話したいず思いたす。 遞択は、むデオロギヌ䞊のこれらの補品に基づいおいたせんでしたが、玔粋に実甚的な理由-それらは䟿利で拡匵可胜です。 しかし、この蚘事では泚意を払う倚くの問題がありたす。

カットの䞋に倚くのテキストず画像。















ナヌザヌサポヌト郚門のアクロニステストチヌムで働いおおり、ナヌザヌの問題を再珟しおいたす。 ディスク環境ずハヌドりェアのシミュレヌションから始たり、゜フトりェアずその特定の蚭定で終わりたす。 タスクは、2぀のワヌクステヌションを䜿甚しおテストベンチの動䜜を保蚌するこずでした。 ESXi、Hyper-V、Proxmoxなどが詊されたしたが、それでもXenServerの䜿甚に萜ち着きたした。 そしお、これはそれから来たものです。





ハヌドりェア



最初は、XenServer 4.2がむンストヌルされたディスクが1぀ありたした。 最初は、速床は良奜でした。 少し埌に、2人がサヌバヌの䜿甚を開始したした。すでに困難な環境がありたしたたずえば、負荷がかかるず垞に動䜜する300GBデヌタベヌスを備えたExchange 2003など。 長時間ロヌドされた仮想マシンおよび1台のサヌバヌで平均20個を同時に実行で、IO埅機が数秒に達するこずがよくありたした。 䜕かをする必芁がありたした。



最初に思い぀いたのはRAIDでしたが、実装が速くなく、昚日゜リュヌションが必芁でした。 そのずき、ZFSがDebianリポゞトリに远加され、詊しおみるこずにしたした。







2぀のワヌクステヌションにはそれぞれ、4぀のSATA2ポヌト、16 GBのRAM、およびギガビットネットワヌクカヌドを備えたマザヌボヌドがありたす。

最初のマシンはハむパヌバむザヌ専甚で、USBフラッシュドラむブからロヌドされたした。

サヌバヌUbuntu 11.04が2番目のマシンにむンストヌルされ、ZFSが機胜するために必芁なすべおのパッケヌゞがむンストヌルされたした。 4reディスクをそれぞれ1 TBず぀むンストヌルしたした。 RAID 10が遞択されたマザヌボヌドにはSATAポヌトが4぀しかないため、OSはUSBフラッシュドラむブにもむンストヌルされたす。

ハむパヌバむザヌ自䜓は、ギガビットスむッチを介しおZFSに接続されたす。

実隓が行われ、蚘事が読たれ、その結果、ZFSでGZIP圧瞮のサポヌトがオンになり、チェックサム怜蚌がオフになり、重耇排陀も拒吊されたした。 これが最も最適な゜リュヌションであるこずが刀明し、8぀のコアすべおが100でロヌドされるこずはほずんどなく、十分なメモリがありたす。 残念ながら、SSDでキャッシュをテストできたせんでした:)



ファむルシステム自䜓はNFSを介しお倖郚に゚クスポヌトされ、ZFS自䜓によっおネむティブにサポヌトされたす。 たた、XenServer、およびESXはNFSリポゞトリず連携したす。 これにより、2台のXenServerず3台のESXiで同じストレヌゞを同時に䜿甚できたした。 Hyper-Vはこのシリヌズからノックアりトされ、en望の氞続性を備え、Server 2012ではNFSの䜿甚を拒吊したすが、これはMSの良心によるものです。







構成されたZFSは次のようになりたす。

root@xenzfs:~# zpool status pool: xen state: ONLINE config: NAME STATE READ WRITE CKSUM xen ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 sda ONLINE 0 0 0 sdb ONLINE 0 0 0 mirror-1 ONLINE 0 0 0 sdc ONLINE 0 0 0 sdd ONLINE 0 0 0 errors: No known data errors
      
      





 root@xenzfs:~# zpool list xen NAME SIZE ALLOC FREE CAP DEDUP HEALTH ALTROOT xen 1.81T 1.57T 245G 86% 1.00x ONLINE -
      
      







ディスクぞの曞き蟌み速床は、1぀のディスクの速床の玄2倍に盞圓したす。



珟圚、最倧40台の仮想マシンがパフォヌマンスの問題なしに同時に動䜜したすが、20台のマシンの前はIOWが最倧5秒䜎䞋しおいたした。 珟圚、ZFSの発売から1幎半埌、゜リュヌションは信頌性が高く、高速で、非垞に予算に優しいず芋なすこずができたす。 ストレヌゞ䞊のNFSおよびCIFSサヌバヌを䞊げお、他の目的に䜿甚できるようにしたす。

XenServerでは、CIFSネットワヌクドラむブ䞊にISOストレヌゞを䜜成できたす。 リリヌステスト前の補品はISOむメヌゞロヌカラむズの異なるWindowsずLinuxのむンストヌラヌに組み蟌たれ、内郚ギガビットネットワヌクのネットワヌクドラむブにダりンロヌドされたす。 その結果、マりスを1回クリックするだけで䞻芳的には、XenCenterはvSphereよりもはるかに䟿利で高速ですたたはスクリプトを䜿甚しお、このISOを仮想CDROMに挿入し同時に数十台のマシンを䜿甚できたす、補品を盎接「ディスクから」配眮し、時間を節玄したす倧きな2GB +ファむルをコピヌしたす。 もちろん、このような線圢読み取りは、特にむンストヌルが5台以䞊のマシンから盎接行われる堎合、ネットワヌクを介しお行われたすが、それでも非垞に䟿利です。







ストレヌゞが接続されおいるギガビットネットワヌクは、仮想マシンでも䜿甚できたす。 したがっお、他のすべおのテストにCIFSを䜿甚できたす。 䟿宜䞊、DHCPサヌバヌもZFSマシンで䜜成されたした。









仮想マシンに加えお、通垞のワヌクステヌションでテストする必芁がありたす。 これは、テヌプドラむブずすべおの皮類のREV、RDXディスクなどでテストしおいたす。 マシンにさたざたな環境を絶えず迅速に展開する必芁がありたす。 ESXハむパヌバむザヌでも、Hyper-Vを搭茉したWindows 2008R2でも、iSCSIマルチパスを匷化したSLESでも。 この目的のために、 DRBLが䜿甚されたす。



DRBLずClonezillaを組み合わせるこずで、柔軟なスクリプトを䜿甚しおPXEを介しおむメヌゞを迅速に展開でき、すでに展開されおいるマシンのNATサヌバヌずしおも機胜したす。







内郚ネットワヌク䞊のマシンは、NATを介しお倖郚ネットワヌクにアクセスし、それら自䜓はRDPを介しおiptablesを介しおアクセスされたす。

 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3390 -j DNAT --to 192.168.1.50:3389 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3391 -j DNAT --to 192.168.1.51:3389 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 3392 -j DNAT --to 192.168.1.52:3389
      
      







さたざたなテヌプドラむブのセットが、無料のテヌプリダむレクタヌを䜿甚する1台のマシンに接続されおいるため、仮想マシンはiSCSIを介しおそれらを䜿甚できたす。 MHVTLを䞊げた別の仮想マシンもありたすが、ハヌドりェアドラむブも必芁です。すべおの問題がVTLに珟れるわけではありたせん。



展開/クロヌン䜜成は、Perl + GTKで䜜成されたナヌティリティを䜿甚しお2回クリックするだけで実行されたす。 それは非垞に簡単に動䜜したす-ブロックからのコマンドはコンパむルされ、SSHを介しお実行されたす。 気にしないで、リポゞトリはここにありたす。 コヌドは未加工ですが、 github.com / Pugnator / GTKdrblを実行しおいたす









むンタヌフェヌス





䞻芳的に䟿利なむンタヌフェむスはCitrix-XenCenterによっおのみ提䟛されたすが、残念なこずにWindows専甚です。 さらに、䜕らかの理由で、重芁で䟿利な機胜がむンタヌフェむスに衚瀺されたせんでした。たずえば、仮想マシンを䞀時停止する機胜や、残念ながら、仮想マシンが固くハングしたずきに頻繁に必芁なXAPI再起動オプションなどです。

画像



sourceforge.net/projects/openxenmanagerなどの他のオプションがありたすが、それらは十分に安定しおいないこずが刀明したした。



VNC Webプロキシwww.xvpsource.orgがありたす

画像



䟿利ですが、ブラりザに含たれおいるJavaが必芁です問題がありたす。たず、VNCの堎合、完党なむンタヌフェヌスで䜜業するこずはできたせん。



その結果、Linux甚のクラむアントはGTK3で䜜成され、Webでも䜿甚できたす。 GTK Broadwayを䜿甚するず、ブラりザでHTML5 + WebSocketsを介しおこのようなツヌルを取埗できたす



画像



このテクノロゞヌでは、倚くのナヌザヌが同時に䜿甚するこずはできたせんが、LinuxずWebの䞡方で完党に䜜業でき、起動パラメヌタヌを倉曎するだけですたずえば、2぀のアむコンに移動したす。



HTML5フロント゚ンドを䜿甚する堎合、アプリケヌション自䜓に倚くの制限が課せられ、䜕らかの理由でこれらの制限は文曞化されおいたせん。 制限の䟋ずしおは、トレむアむコンを䜿甚できない、盞察的なりィンドりの配眮などがありたす。 結果は、䞍安定な動䜜から転倒たでです。

3幎前の説明ペヌゞずニュヌスを陀けば、ブロヌドりェむには䜕もないので、珟圚のずころ、ブロヌドりェむの勉匷はGTK3゜ヌスコヌドを読んでいたす。





API





C、C、Java、Python、およびPowershell甚のAPIが存圚したす 。 Cの堎合、アセンブリはLinux専甚ですが、゜ヌスを少し改良する方法により圓時はmingwに䜕らかの機胜の実装はありたせんでした、すべおがWindowsMinGWで正垞にアセンブルされたした。 APIはHTTPSを介しお機胜したす。 APIは、仮想マシンぞのかなり䜎レベルのアクセスを提䟛したす。



ディスク



マりスでクリックしおMBRをすばやく衚瀺するこずから、仮想マシンからファむルを抜出するか、オフになっおいる仮想マシンにファむルをダりンロヌドするこずたで、倚くのこずが必芁でした。

これは、たずえばBSODの堎合に必芁になるこずがありたす-レゞストリを抜出するおよび/たたは線集しお、たずえばドラむバヌをオフにする、たたはブヌトロヌダヌオプションを線集するシリアルポヌト経由でデバッグを有効にするなど。 そのような目的のために、ブヌトディスクの助けに頌らなければなりたせん。

ただし、そうでない堎合もありたす。XVA圢匏のHTTP GETを介しお仮想マシンを゚クスポヌトするこずができたす。これは、ディスクブロックが内郚にあるTARアヌカむブです。



 $ tar -tvf test.xva
 ---------- 0/0 17391 1970-01-01 01:00 ova.xml
 ---------- 0/0 1048576 1970-01-01 01:00 Ref946/00000000
 ---------- 0/0 40 1970-01-01 01:00 Ref946 / 00000000.checksum
 ---------- 0/0 1048576 1970-01-01 01:00 Ref946/00000007
 ---------- 0/0 40 1970-01-01 01:00 Ref946 / 00000007.checksum
 ---------- 0/0 1048576 1970-01-01 01:00 Ref949/00000000
 ---------- 0/0 40 1970-01-01 01:00 Ref949 / 00000000.checksum
 ---------- 0/0 1048576 1970-01-01 01:00 Ref949/00000003
 ---------- 0/0 40 1970-01-01 01:00 Ref949 / 00000003.checksum




このアヌカむブをその堎で読むず、目的のMBRを簡単に取埗でき、パヌティションのオフセットずタむプを読み取った埌、ファむルを読み取るこずができたす。 ただし、珟時点では、MBR抜出のみが実装されおいたす。 バヌゞョンXenServer 6.2以降では、RAWディスクを゚クスポヌトできたす。 XenServerの将来のバヌゞョンでは、任意のオフセットからディスクのデルタのみを゚クスポヌトする機胜を導入するこずを玄束しおおり、これにより新しい可胜性が開かれたす。



ネットワヌク



さたざたな方法で、仮想マシンネットワヌクでの䜜業を制埡できたす。 これは通垞、仮想マシンにむンストヌルされおいるwireshark / tcpdumpです。 目的のダンプが収集され、調査のために別の堎所に転送されたす。 しかし、より良い方法がありたす -実行䞭の各仮想マシンには独自のdom-idがあり、それに応じお、ハむパヌバむザヌからアクセス可胜なvifDOMID.0ずいう圢匏のVIFデバむスもありたす。 SSHを介しおハむパヌバむザヌに接続するこずにより、任意のスむッチオン仮想マシンのダンプを簡単に取埗できたすもちろん、ネットワヌクカヌドが远加されおいたす。 さらに、 QAからのアドバむスによるず、プログラムはパむプを䜜成しおWiresharkを起動したす。 そしお、リアルタむムでトラフィックを取埗/フィルタリングしたす。



ゲストツヌルずシリアルポヌト



APIは、 ファむルのコピヌなど、vix vmWareのゲスト操䜜に類䌌した機胜を提䟛したせん。

メむン゜フトりェアのむンストヌルで、ギガビットネットワヌクでISOを䜿甚しお問題を解決した堎合、コマンドの転送/ロギング、デヌタの衚瀺では、すべおがそれほどスムヌズではありたせん。 䞭間ネットワヌクドラむブを䜿甚する必芁があり、これが垞に可胜であるずは限りたせんテスト条件、分離されたネットワヌク。 いずれにせよ、それは時間がかかり、䞍䟿です。



最初に思い぀いたのは、仮想シリアルポヌトを䜿甚するこずでした。 TCP経由でXenServerを䜿甚しおブロヌドキャストされる仮想COMポヌトをアクティブ化できたす。 これで、察応するアドレスで接続が開いおいる堎合、115200の速床でメッセヌゞを送受信できたす。仮想プログラム「シリアルポヌトCLIプロキシ」が仮想マシンで起動され、シリアルポヌトからのコマンドの倉換が実行され、結果が返されたす。

萜ずし穎がいく぀かありたした。

1クラむアント仮想マシンがこの間に少なくずも1バむトを送信しなかった堎合、転送された65535バむトに達するず、送信が䞭断されたす。

2ポヌトの有効化は、再起動埌にのみ機胜したす。 ぀たり、オフにした仮想マシンでオンにするか、再起動する必芁がありたす。

3䜕らかの理由で接続が切断された堎合、再起動する前に接続を埩元する方法はありたせん。

4最悪の郚分は、TCPサヌバヌが応答しない堎合、起動時に仮想マシンがフリヌズするこずです。



これらの理由により、たずえばxenstoreを介しお、他のメ゜ッドが䞊行しお怜玢されたした 。 これは、さたざたなドメむンで利甚可胜なリポゞトリです。 仮想マシンを含む。 2メガバむトのオヌダヌのバッファヌがあり、非垞に高速に蚘録されたす。 ただし、読み取りは115200より遅く、むンストヌルされたxenツヌルが必芁であり垞に可胜ずは限りたせん、慎重にコヌドをテストする必芁がありたす。 たずえば、ドラむバヌ゜ヌスのコメントから刀断しお、 XENSTORE_PAYLOAD_MAXを超える曞き蟌みを行う堎合、これは臎呜的です。



珟時点では、仮想マシンの準仮想シリアルポヌトをハむパヌバむザヌぞのsshトンネル経由で䜿甚するこずを考えおいたす。これは、ネットワヌクカヌドに関する䞊蚘の方法ず同様です。 どうやら、これは最も安党で最速の方法です。 珟時点では、これが実珟可胜であるこずが確認されおいたす。



たったく同じ方法で、TCP / SSHを介しおシリアルポヌトを転送するこずでWindows / Linuxカヌネルをデバッグできたす。たずえば、WinDbgは既にパむプを介しおロヌカルに接続されおいたす。 そのような目的のために、 Windowsのすべおの利甚可胜なバヌゞョンの文字のセットを備えた別個の仮想マシンが䜜成されたした。



おわりに





XenServer APIを䜿甚しお調査し、オヌプン゜ヌスの長所ず短所の倚くを経隓したした。 十分な機䌚は匱い文曞にかかっおいたす。 VIXが非垞に詳现に蚘述されおいる堎合、同じxenserver api-3぀の䟋、4぀のテストファむル、および゜ヌスヘッダヌのコメントを䜿甚したす。 コヌドは理解できたすが、個々の機胜をどのように接続するかは、開発者たたはXenのアヌキテクチャを熟知しおいる人にずっお明らかです。 たずえば、ディスクサむズを調べるなどのタスクはどこにも蚘述されおいたせん。 そしお、アヌキテクチャを知らない-掚枬はあたり簡単ではありたせん。 もちろん、Xenの構造を掘り䞋げ、掘り䞋げおいくうちに、ずっず明確になりたした。 しかし、私は倚くの質問ぞの回答を埗たせんでした、そしお週末のIRCチャットで誰も答えたせん-孀独な蚪問者は「今日は日曜日です」ず曞いおいたす:)。

しかし、䞀幎の間にりィキ、蚘事、䟋が远加され、新機胜のデモンストレヌションが行われ、進歩がありたす。 将来、XenServerがサヌドパヌティ゜フトりェアの優れたセットを䜿甚しお垂堎で匷力なプレヌダヌになるこずを本圓に期埅しおいたす。



All Articles