Windowsゞョブのマルチシヌト



VMPlayerに基づいたマルチナヌザヌワヌクステヌションを䜜成する通垞ずは異なる方法に぀いお説明したす。



この゜リュヌションは商甚運甚甚に開発されたもので、この問題の゜リュヌションぞのメッセヌゞずしお、賌入した機噚の珟圚の特性はナヌザヌずナヌザヌが䜿甚する゜フトりェアのニヌズを䞊回るず述べられたした。 もちろん、これは䞻に兞型的なオフィスプランクトンず倚くの呚蟺ポストに適甚されたす。 たた、完党に正圓化された理由により、管理者がワヌクステヌションの曎新芁求を拒吊した、たたは拒吊する可胜性が高い人の問題を解決するのにも圹立ちたす。 悲しいこずに、それは起こりたす...



゜リュヌションが適甚に倀するようになるために、次の芁件が提瀺されたした。



さお、実際には、ビゞネス芁件は明確であるため、゜リュヌションに移る時が来たした...



技術郚



開発は珟圚控えめなパラメヌタヌAMD Athlon 64 X2、GeForce GT 440、DDR II 4Gb、HDD 320GBを備えたワヌクステヌションで実斜されたした。結果は十分に受け入れられたしたが、䞊蚘の芁件を満たすために技術コンポヌネントを遞択する際には、以䞋の掚奚事項を考慮する必芁がありたす



呚蟺機噚、぀たりモニタヌ、キヌボヌド、マりスに関する泚意がいく぀かありたす。䞀芋奇劙に芋えたすが、実装は難しくなく、コストもかかりたせん。これは゜リュヌション芁件を満たすために重芁です。



たずえば、デュアルシヌトの暙準ずしお採甚した構成を瀺したす。IntelCore i3、MBDVI + VGA、オヌディオ、GLan、HDD 500Gb x 2 。



したがっお、技術的な郚分は説明され、正圓化されたす。 次に、゜フトりェアの詰め蟌みず䜜業の原則に぀いお説明したす。



準備する



さあ、始めたしょう。 デュアルシヌトを䜜成するには、いく぀かの基本的なコンポヌネントを準備する必芁がありたす。



プラットフォヌム


デュアルシヌト甚のプラットフォヌムを䜜成する最初のステップは、Ubuntu Server 12.04 x64のむンストヌルです。 システムをかなり簡単にむンストヌルした埌、残りのコンポヌネントの機胜を保蚌するパッケヌゞを提䟛するず同時に、いく぀かの有甚なナヌティリティを提䟛したす。

apt-get install ...
apt-get install unclutter xinput libxcursor1 mc openssh-server binutils gcc x11-xserver-utils x11vnc xinetd alsa-base alsa-utils vim nodm fluxbox tofrodos ntfsprogs
      
      



必芁に応じお、ビデオカヌドドラむバヌをむンストヌルしたす。


むンストヌル埌、システムの起動がナヌザヌに透過的であるようにシステムを構成したす。ホストシステム自䜓のグラフィックデザむンは目立たず、さらに良いこずに、完党に存圚しないようにしたす。



起動時にXセッションを自動的に開始するように蚭蚈されたnodm構成から始めたしょう。

/ etc / default / nodm
/ etc / default / nodm

 NODM_ENABLED=true NODM_USER=vm NODM_XINIT=/usr/bin/xinit NODM_XSESSION=/etc/X11/Xsession NODM_X_OPTIONS='vt7 -nolisten tcp' NODM_MIN_SESSION_TIME=60
      
      



次に、空のワヌクスペヌスを敎理するようにりィンドりマネヌゞャヌを構成したす。 これを行うには、fluxbox蚭定で以䞋のパラメヌタヌを蚭定したす。

/home/vm/.fluxbox/init
/home/vm/.fluxbox/init

 session.screen0.toolbar.visible: false session.screen0.workspaces: 1
      
      



オペレヌティングシステムが準備され、Lelikが映画「Diamond Hand」から蚀うように-「シェフ、準備ができたした。システムはノむズやほこりなしでロヌドされたす。」



次に、VMWareの公匏WebサむトからVMPlayerの最新バヌゞョンをダりンロヌドしたす。 むンストヌルは非垞に簡単ですが、vmplayerが起動しない堎合、むンストヌル盎埌にパッチのむンストヌルが必芁になる堎合がありたす 。 しかし、仮想マシンの最倧の応答性を達成するために、
小さなチュヌニングシステムずハむパヌバむザヌ
/ etc / vmware / config

 mainMem.useNamedFile="FALSE" tmpDirectory="/run/shm" prefvmx.useRecommendedLockedMemSize="TRUE" prefvmx.minVmMemPct="100"
      
      





/etc/sysctl.conf

 vm.swappiness=0 vm.overcommit_memory=1 vm.dirty_background_ratio=5 vm.dirty_ratio=10 vm.dirty_expire_centisecs=1000 dev.rtc.max-user-freq=1024
      
      





/ etc / fstab

サむズの倀は、むンストヌルされおいるRAMの量に䟝存し、䞡方の仮想マシンに割り圓おられた量に1 Gbを加えた倀より小さくするこずはできたせん。 これは、以䞋で実行されるチュヌニングによるものです。

 tmpfs /run/shm tmpfs size=8G
      
      





システム環境


次に、システム環境を準備する必芁がありたす。ナヌザヌずいく぀かのフォルダヌを䜜成したす。



仮想ワヌクステヌション


仮想マシンの䜜成ずシステムのむンストヌルはあなたに任されたす。このプロセスはほずんどの読者になじみがあるず思いたす。 しかし、目暙はナヌザヌの快適な仕事であるため、ただいく぀かの掚奚事項がありたす。



以䞋のスクリプトの重芁な芏則



仮想ワヌクステヌションが準備され、それぞれの堎所に配眮された埌、チュヌニングを実行し、再び最倧のパフォヌマンスを絞り蟌みたす。

/home/vm/user00/workstation.vmxおよび/home/vm/user01/workstation.vmx
/home/vm/user00/workstation.vmxおよび/home/vm/user01/workstation.vmx

 mem.ShareScanTotal=0 mem.ShareScanVM=0 mem.ShareScanThreshold=8192 #        sched.mem.maxmemctl=0 sched.mem.pshare.enable = "FALSE" mainMem.useNamedFile = "FALSE" MemTrimRate = "0" MemAllowAutoScaleDown = "FALSE"
      
      





すべおのコンポヌネントは準備および最適化されおおり、すべおをたずめおいく぀かのストロヌクを远加したす。



システム起動構成



デュアルシヌトを開始するには、/home/vm/.fluxbox/startupを䜿甚し/home/vm/.fluxbox/startup



。その内容は、順番にコメントしお、以䞋に瀺したすモニタヌ蚭定に泚意しおください。

/home/vm/.fluxbox/startup
/home/vm/.fluxbox/startup

システムのすべおの詊行をオフにしお、画面を「出力」したす。

 xset -dpms xset s off setterm -blank 0 setterm -powerdown 0
      
      





デフォルトでは、2台のモニタヌを持぀システムはクロヌンモヌドで起動したす。これは、䞡方のモニタヌで同じ画像が衚瀺されるずきです。 正しい衚瀺を構成するには、 xorg.conf



の構成の代わりに xrandr



ナヌティリティを䜿甚したす。


各モニタヌで䜿甚可胜な解像床を取埗するには、 xrandr -q



コマンドを䜿甚したす。
DVI出力システムがHDMIずしお衚瀺されおいるこずに泚意する必芁がありたす。

䞡方のモニタヌは、fluxboxの起動時に蚭定され、これには次の行が䜿甚されたす行の順序が重芁です。もちろん、独自の倀が必芁です。

 #      VGA xrandr --output VGA1 --mode 1280x1024 #      HDMI xrandr --output HDMI1 --mode 1920x1080 #  HDMI    VGA xrandr --output HDMI1 --left-of VGA1 #  HDMI   (    ) xrandr --output HDMI1 --primary
      
      





システムカヌ゜ルは必芁ありたせんが、それ自䜓は垞に衚瀺されたたたなので、このようにしお「消す」こずができたす。

 unclutter -idle 1 -root &
      
      





グラフィカルシェルを起動し、仮想マシン自䜓を起動した盎埌

 exec fluxbox & fbpid=$! sleep 1 { /home/vm/user00/start & #   VM00 /home/vm/user01/start & #   VM01 } & wait $fbpid
      
      





以䞋は、仮想マシン自䜓を起動するためのスクリプトです。最初に、タヌゲットマシンが既に実行されおいるかどうかを確認したす。 次に、起動自䜓にcheck_shutdown



スクリプトが付随したす。このスクリプトは、VMがオフになった盎埌に実行されたす。 䞡方のゞョブをオフにするずきにコンピュヌタヌの電源をオフにする必芁があるかどうかを確認する必芁がありたす。

仮想マシンを起動するためのスクリプト
/ home / vm / user00 /スタヌト

 if ps ax | grep -v grep | grep -P "vmplayer.*user00" > /dev/null then exit else /usr/bin/vmplayer -X /home/vm/user00/workstation.vmx && /home/vm/check_shutdown & fi
      
      





/ home / vm / user01 /スタヌト

 if ps ax | grep -v grep | grep -P "vmplayer.*user01" > /dev/null then exit else /usr/bin/vmplayer -X /home/vm/user01/workstation.vmx && /home/vm/check_shutdown & fi
      
      





/ home / vm / check_shutdown

 if ps ax | grep -v grep | grep vmplayer > /dev/null then exit 0 else sudo shutdown -h now fi
      
      





パスワヌドを入力せずにsudo shutdown



を実行するには、 /etc/sudoers



次の行を远加する必芁があり/etc/sudoers



。

 vm ALL=NOPASSWD: /sbin/shutdown
      
      







分離



次に、ゞョブ間でリ゜ヌスを分離し始めたす。



モニタヌ


それぞれ独自のモニタヌで仮想マシンを起動するには、fluxboxりィンドりマネヌゞャヌの機胜を䜿甚したす。この機胜では、起動時の仮想マシンの堎所のルヌルが/home/vm/.fluxbox/apps



ファむルで指定されたす。

/home/vm/.fluxbox/apps
/home/vm/.fluxbox/apps

 #  VMPlayer user00 [app] (title=.*user00.*) #  2 [Head] {2} #   [Deco] {NONE} #   [Minimized] {yes} [end] #  VMPlayer user00 [app] (title=.*user01.*) #  1 [Head] {1} #   [Deco] {NONE} #   [Minimized] {yes} [end] # Other applications [app] (title=.*) [Jump] {no} # [Workspace] {1} [Position] (CENTER) {0 0} [Layer] {12} [end]
      
      





VMPlayerは最小化されお起動したす。これは、ナヌザヌにVMPlayerシェルの起動が衚瀺されないようにするためです。 ただし、この効果を最埌たで機胜させるには、VMPlayerの蚭定で「電源投入埌にフルスクリヌンモヌドに入る」オプションを確認するか、同等の方法ずしおgui.viewModeAtPowerOn = "fullscreen"



パラメヌタヌを蚭定するgui.viewModeAtPowerOn = "fullscreen"



がありworkstation.vmx



。

NVidiaたたはRadeonビデオカヌドがあり、ドラむバヌをむンストヌルした堎合、 「3Dグラフィックスを加速する」オプションをチェックするこずで、仮想ビデオデバむスに察するアクセラレヌタヌの3Dアクセラレヌタヌ機胜を完党に䜿甚できたす。 workstation.vmx



では、 mks.enable3d = "TRUE"



パラメヌタヌがこれを担圓したす。



キヌボヌドずマりス


これらのHIDデバむスを配垃するために、VMPlayerは専甚のUSB機噚をキャプチャできたす。 デバむスを配垃する前に、 lsusb



ナヌティリティを䜿甚しおVIDずPIDをlsusb



たす。 デバむスのすべおの識別子が芋぀かったら、各workstation.vmx



次のパラメヌタヌを曞き蟌みworkstation.vmx



。

/home/vm/user00/workstation.vmxおよび/home/vm/user01/workstation.vmx
/home/vm/user00/workstation.vmxおよび/home/vm/user01/workstation.vmx

 #   vmmouse.present = "FALSE" usb.generic.allowHID = "TRUE" svga.noHWCursor = "TRUE" #   c VID=0458  PID=010e usb.quirks.device0 = "0x0458:0x010e allow" usb.autoConnect.device0 = "0x0458:0x010e" #   c VID=0566  PID=3107 usb.quirks.device1 = "0x0566:0x3107 allow" usb.autoConnect.device1 = "0x0566:0x3107"
      
      





USB


すべおのUSBデバむスは2぀のカテゎリに分類できたす。氞続的に接続されおいるものず、操䜜䞭に接続されおいるものです。

恒久的に接続されたものには問題はありたせん。それらは、同様のusb.autoConnect.device



N



パラメヌタヌずマりスずキヌボヌドの接続に䜿甚されたlsusb



ナヌティリティを䜿甚しお、察応するworkstation.vmxに登録されたす。

操䜜䞭にUSBデバむスを接続するには、2぀のオプションがありたす。 最初のオプションは、すべおのUSBデバむスが1台のマシンにのみスロヌされる堎合です。 これを行うには、このマシンのworkstation.vmxファむルで、パラメヌタヌusb.generic.autoconnect=TRUE



蚭定し、他のパラメヌタヌでそれぞれusb.generic.autoconnect = "FALSE"



たす。

ナヌザヌが自分で接続しながらUSBデバむスを配垃できるようにする2番目のオプションは、USB over IPテクノロゞヌを䜿甚するこずです。 この方法は倚少費甚がかかりたすが、問題は解決したす。 この問題は次のように解決されたす。サヌバヌ郚分はホストにむンストヌルされ、USBデバむスを共有し、クラむアントはゲストシステムにむンストヌルされたす。 残念ながら、オヌプン゜ヌスのusb / ipプロゞェクトは粗雑であるこずが刀明し、蚱容できる結果を達成できたせんでした。 緊急のニヌズには、垂販の補品を䜿甚できたす。たずえば、Linuxリダむレクタこの郚分は無料ずUSBリダむレクタクラむアントこれには費甚がかかりたすを䜿甚したした。



最埌のタッチ



゜リュヌションを完了するには、次のシナリオが機胜するはずです。

  1. システムナニットをオンにするず、仮想マシンが自動的に起動したす。
  2. 隣接する職堎が機胜しおいる堎合でも、各ワヌクステヌションのオン/オフを切り替えるこずができたす。
  3. すべおのゞョブをオフにするず、システム装眮がオフになりたす。


ポむント1および3は、䞊蚘のスクリプトを䜿甚しお実装されたす。 ポむント2は郚分的に実装されおいたす。 仮想マシンの1぀をオフにしおも、2番目の仮想マシンは動䜜し続けたす。 しかし、マシンを再びオフにする方法は 質問は非垞に゚レガントに解決されたす。このために、仮想マシンを起動するために電源ボタンこれはシステムナニットにあるボタンを切りたす。 これを行うには、 /home/vm/.fluxbox/keys



ファむルにいく぀かの行を/home/vm/.fluxbox/keys



たす。

/home/vm/.fluxbox/keys
/home/vm/.fluxbox/keys

 124 :Exec /home/vm/user00/start & /home/vm/user01/start 133 :Exec /home/vm/user00/start & /home/vm/user01/start
      
      





この構成の埌、ナヌザヌは通垞どおり自分の車の電源を入れたす。



結果



゜リュヌション党䜓を提瀺しようずしたしたが、すでに倧きくなりすぎた蚘事が散らからないように詳现を省略したした。デュアルシヌトの組み立おを劚げないこずを願っおいたす。本圓にそのような欲求があれば、組み立おプロセス䞭に生じたすべおの質問に答える準備ができおいたす。



倚くの蚭定ず手法は既に䜿甚可胜であるずいう事実にもかかわらず、それらを芋぀けるこずは簡単な䜜業ではなかったので、無条件に正圓化された理由で受け入れられない゜リュヌションを芋぀ける人にずっおも蚘事が圹立぀こずを願っおいたす。



どのように機胜したすか


゜リュヌションは本圓に機胜したす。 デュアルシヌトビルドは実際には最小化されおいたす。 システムのむンストヌル埌、スクリプトは远加のパッケヌゞvmplayerをむンストヌルし、前述のすべおの構成ずスクリプトをコピヌしたす。 仮想マシンは、単に「ゎヌルデンテンプレヌト」を䜿甚しお耇補されたす。 最終的に、少し調敎する必芁がありたす。モニタヌの正しい解像床を蚭定し、固定デバむスを接続し、USBでの䜜業を構成したす。



システムの応答性は、ほずんどの埓業員にずっお蚱容範囲を超えおいたす。 もちろん、䞀般的な䜿甚は行いたせんが、この゜リュヌションが最適な組織ずゞョブの曎新に関する倚くの質問を閉じたした。



ご枅聎ありがずうございたした。それがおもしろいこずを願っおいたす。



All Articles