ç§ã¯äœã«ã€ããŠè©±ããŠããã®ã§ããïŒ
ããŸããŸãªã¿ã¹ã¯ããããŸã...åçŽãªã¿ã¹ã¯ãšè€éãªã¿ã¹ã¯ããããŸããã1é±é以äžãããã解決ããã®ã«ååãªæ°ã®ç¥çµçŽ°èãå¿ èŠãªã¿ã¹ã¯ããããŸãã ãããã®ã¿ã¹ã¯ã®1ã€ã¯ã倧éã®åŒ±ãéã®äžã«æ·±å»ãªäœããå±éããããšãšèããããšãã§ããŸãã ããªãã¡...
ïŒä»¥äžãLTSPã®ãããã«å ·äœçã§æé©åãããæ§æãšãããã«åºã¥ãããµãŒããŒã¯ã©ã¹ã¿ãŒã®äœæã«ã€ããŠèª¬æããŸãïŒã
äžéšã®çµç¹ã¯ãã¿ãŒããã«ãµãŒããŒãšå€æ°ã®ã¿ãŒããã«ã¯ã©ã€ã¢ã³ããå±éããããšã決å®ããŸããã äºåçãªèšç®ããã¹ãããããŠæããã«è³ãªãã§ã誰ããããã€ãã®ã¿ã€ãã®HP端æ«ãè³Œå ¥ããŸããã äž»ã«ãRAMã®éãšå èµãã©ãã·ã¥ãã©ã€ãã®ãµã€ãºãç°ãªããŸããã RAMãµã€ãºã¯128ãã512 mbã®ç¯å²ã§ããã©ã€ãã®ãµã€ãºã¯64ãã256ã®ç¯å²ã§ãããå®å šãæãããã«ãx86 Via / AMDããã»ããµã800 MHzãããã³åãViaãŸãã¯SiSããã®ãããªã«èšåãã䟡å€ããããŸãã åç©åã¯çãã§ãã
ããŠããã§ã«ããã«ãããã®ãè²·ã£ãŠè²·ã£ãã ãµãŒããŒãå±éããã¯ã©ã€ã¢ã³ããæ¥ç¶ãå§ããŸãã...ãããŠã70çªå°ãæ¥ç¶ããåŸãããªã匷åãªãµãŒããŒãåçŽã«ãµã°ãå§ããŸããã ãµãŒããŒãšãšãã«ãã¯ã©ã€ã¢ã³ãã¯ã¹ããŒããŠã³ãå§ããŸãããããã以å€ã®å Žåã¯ã©ãã§ããããïŒ ãããã¯ãŒã¯ãªãœãŒã¹ããµãŒããŒèªäœã®ãªãœãŒã¹ãååã§ã¯ãããŸããã§ããã ã©ããã çµå±ã®ãšãããçŽ150ã®æªæ¥ç¶ã®ç«¯æ«ããŸã ååšããŠããŸãã Ai-ai-ayã¯ããŠãŒã¶ãŒã管çè ãããã³ãã®ä»ã®äººãåæã«èšã£ãã ç§ãã¡ã¯å幎éããŠãåŸç¹ããŸããã ã¡ãªã¿ã«ãã¯ããã¿ãŒããã«ã¯ããšããšWindows CEã®äžã«ãã£ããããRDPãä»ããŠã¿ãŒããã«ãµãŒããŒãšããåãããŸããã
ãããŠããã«6ã¶æåŸã圌ãã¯çªç¶æãåºããŸãã...ãããŠåœŒãã¯ãããå€éšå§èšããŸããã ãããããããã©ãŒãã³ã¹ã®åé¡ã解決ããã°ã誰ãã倧äžå€«ã§ãïŒããšããå¥ãã®èšèã§ã å®éã«ã¯ã端æ«ããçŸåšå¿ èŠãªãã®ã ã¿ãŒããã«ã®èµ·åæã«ããŠãŒã¶ãŒããäœããã£ãŠãããµãŒããŒã«ãã°ã€ã³ã§ããææžãã®ãœãããŠã§ã¢ãèµ·åããèªèšŒãæåããå Žåã¯ãã©ãŠã¶ãŒãèµ·åããå¿ èŠããããŸããã ãããïŒ ãã...ãããŠãããã¯ãã¹ãŠæ»ãã ã¿ãŒããã«ã§ãåäœããã¯ãã§ãã ã€ãŸããããŒ-RAMã®128 MBããã©ã€ãäžã®64 MBã ããã»ããµã«ã€ããŠå¿é ããå¿ èŠã¯ãããŸããããªããšãåŠçã§ããŸã...
äœåãè©Šãããçµã¿èŸŒã¿Linuxã圹ç«ã¡ãŸãïŒ
åœç¶ãã¯ã©ã€ã¢ã³ãã®æ°ãèæ ®ããŠã端æ«ãœãªã¥ãŒã·ã§ã³ã䜿çšãããåã¯ã©ã€ã¢ã³ããèªçµŠèªè¶³ã«ããããšã決å®ãããŸããã ãã®ãããBuildrootã¯å ã zayuzanã§ããã ã«ãŒãã«ãæå°éã®ã·ã¹ãã ããã³ãããã¯ãŒã¯ãŠãŒãã£ãªãã£ã®ã»ãããQt Embeddedãç¬èªã®ãœãããŠã§ã¢ã®äžéšãå«ãå°ããªé åžããããçµã¿ç«ãŠãããŸããã...ã¯ããããã§ãã¹ãŠã§ãã çŽ40 mbã®ãµã€ãºãåºãŸãããã€ãŸããæã匱ãéçã«å®å šã«åãŸããŸãã çå®ã¯ãã¹ãŠã®ç«¯æ«ã§æ©èœããŸããã§ããã Viaã§çµã¿ç«ãŠãããã³ã³ãã¬ãã¯ã¹ãååã®ããã¯ã§åäœããå ŽåãAMDãæèŒãã端æ«ã§ã¯ãŸã£ããèµ·åããŸããã§ããã ãã®ã¿ã€ãã®ããŒããŠã§ã¢ã«ã¯dofigã®å Žæããã£ããããDebianãåå¥ã«ã¢ã»ã³ãã«ããå¿ èŠããããŸããã
ãããžã§ã¯ãã¯æ£åžžã«å®äºãã顧客ã«å±ããããŸããã ãã¡ããããã¹ãŠãæ©èœããå®ç§ã§ã¯ãªãããã©ã°ããããŸããããã©ãŠã¶ã®ã¿ãã®æ°ã5çªç®ã«å¶éããªããã°ãªããŸããã§ããããã®ããã端æ«ã®ãªãœãŒã¹ã«ç¹ã«äŸåããŸããã§ããã ãã¥ãã¥ã«ã«ã«ãã¥ãã¥ã«ã¯ãå ¥ããŠãã ããïŒ èª°ãã幞ãã§ãããããã¯ãã ...
ãããã楜ããèŸ²å Žã¯ã©ãã§ããïŒ
ã¯ãã¯ã...ãŠããã¿ã¹Flashãã¬ãŒã€ãŒãå¿ èŠã§ãã ããŠãããŒããž-ãã©ãŠã¶çšã®Javaãã©ã°ã€ã³ã åé¡ã¯åããŸãŸã§ã-ãã¡ãŒã ãŠã§ã¢ã«ååãªã¹ããŒã¹ããªãããã¹ãŠã®RAMãWebKitã«ãã£ãŠãã§ã«æ¶è²»ãããŠããŸãã ããã«ãååãªã¹ããŒã¹ããã£ããšããŠããQt Embeddedã¯ãã©ãŠã¶ãŒãã©ã°ã€ã³ããµããŒãããŸãããLinuxã§ãããã®ãã©ã°ã€ã³ãæ©èœããã«ã¯X.Orgãå¿ èŠã ããã§ãã ãŸããã¯ããåãXEmbedWindowããŸãã¯ãããäœã§ãã...çããŽããã¢ããªã±ãŒã·ã§ã³ã«å€éšãŠã£ã³ããŠãåã蟌ãããšãã§ããŸãã ãããŠãç§ãèšã£ãããã«ãããšãååãªã¹ããŒã¹ããã£ããšããŠãã128 MBã®ãããã¿ãŒããã«ã¯X + Qt + Webããã+ FlashãæèŒããå®è¡äžã®ãã©ãŠã¶ãŒãåŒã£åŒµãããšã¯ãããŸããã§ããã æ²ãã ç§ãã¡ã¯ã«ããå·ã€ããŸã...ç§ãã¡ã¯é·ãéå·ã€ããŸã...æåŸã«ç§ãã¡ã¯äœãä»ã®ãã®ãè©ŠããŸãã ãªãã·ã§ã³ãšããŠæ¬¡ã®ã¹ããŒã ã䜿çšããŸããOSã¯ç«¯æ«ããèµ·åãããŸããããã°ã€ã³ãããšãã»ãã·ã§ã³ã¯åŒãç¶ãNXã¯ã©ã€ã¢ã³ããä»ããŠç«¯æ«ãµãŒããŒããèµ·åãããŸãã çè«çã«ã¯ãããã«ãããµãŒããŒã®è² è·ãå°ãªããšããããã«è»œæžãããŸãã ããã³ãã²...
æ°ããBuildrootãæ§ç¯ããŠããŸããä»åã¯Qtãã¹ããŒããX.OrgãšNXã¯ã©ã€ã¢ã³ããè©°ã蟌ã¿ãŸãã ãµãŒããŒã«ã¯ããã¹ãã®ããã«å ¬åŒã®NoMachine NXãµãŒããŒãé 眮ããŸããã 誰ããç¥ããªãå Žåãããã¯ããã«ãããŸã ã èµ·åããè±èªã§ã¡ã¬ãã°ã€ã³ãã€ã¢ãã°ã衚瀺ããç解ããã«ã¹ã¿ã ã»ãã·ã§ã³ã«æ¥ç¶ããŸã...åºæ¥äžããããµãŒããŒãããã©ãŠã¶ãèµ·åããŸããã YouTubeã«ã¯5ã€ã®ã¿ããçšæãããŠããŸãããããªãéå§ããŠãã ããã åäœããŸãã ãã¹ããµãŒããŒã®è² è·ã確èªããŸã...ãLyatïŒããšããèšèã¯å£ã倱ãããã ãã§ãã1ã€ã®ã¯ã©ã€ã¢ã³ããã©ãŠã¶ãŒã100ã120 MBã®RAMãåé€ããŠããæé©åã®ç®æšã«è¿ã¥ãããšã¯ã§ããŸãããããã«ãããã¯ãŒã¯è² è·ãå ããŸãã楜ãã...
å°ãªããšã15ã30å°ã®ã¯ã©ã€ã¢ã³ããããã°ãææ ¢ã§ããŸãããããã300ãè¶ ããããšã¯ãããŸãããããããåã³... NXã¯ã©ã€ã¢ã³ãã®èªåå ¥åã®èšå®ãèŠã€ããããèµ·åæã«æž¡ãããå¿ èŠãªãã©ã¡ãŒã¿ãèŠã€ãããŸããã§ããã -ãã®èšå®ã§éå§ããããã«ããµãŒããŒäžã§ãã®ãããªãœãããŠã§ã¢ãèŠããŠãã ãããäžæ¹ãBasurmã®é¡ã§ã«ã«ã¹ãããã«é»ã£ãŠãã ããïŒ
ããïŒ ãããŠãããªãã¯æåããŸããã§ãããïŒ
ããŠãããªãã¯ã©ãã§ããã...ãããŠããã®ããã¹ãã¯ãã¹ãŠãããŸãã=ïŒäžè¬çã«ãããã€ãã®ãªãã·ã§ã³ãæ¢ããŸãïŒssh -Xã®ãããªåããã«ããŒã§ãã¹ãŠãå®è¡ãããªã©ïŒãç§ã¯ããããã¹ãŠæ£ãããªããšããªãã¯è¡åããå¿ èŠããããšããçµè«ã«éããŸããããã§ãªããã°ã
ãã®æç¹ã§ãç§ã®æ€çŽ¢ã§ã LTSP -Linux termianl Server Projectã«åºäŒããŸããã ååãšããŠãç§ã¯æåã«ããã«ã€ããŠèªã¿ãŸãããããçµå±ãã¿ãŒããã«ãµãŒããŒããããŸããå§ãããšããã«æ»ããŸãããããšæãããŠã£ãããã£ã¢ã®ããŒãžãæççã«éããŸããã ãã ããäžéšã¯ä»ã®ãªãã·ã§ã³ããªãããããŸãäžéšã¯LTSPã®Ubuntuãã«ãã»ã¯ã·ã§ã³ã§ãã¿ãŒããã«èªäœã§ããŒã«ã«ã¢ããªã±ãŒã·ã§ã³ãå®è¡ããæ©èœãšããŠèª¬æãããŠãããããè©ŠããŠã¿ãããšã«ããŸãã...
ãã¹ããžã§ãŒã€ããïŒ
ã ããã åææ¡ä»¶ãšããŠãi386ã³ã³ãã¥ãŒã¿ãŒãŸãã¯ä»®æ³ãã·ã³ïŒ2æã®ãããã¯ãŒã¯ã«ãŒããæèŒïŒãšUbuntu Server 11.04é åžãããããããšããŸãã ããã«ããããã¯ãŒã¯çµç±ã§èµ·åã§ããããã€ãã®ç«¯æ«ã ãã¹ãã®ããã«...
ãã¡ããããŸããUbuntuãµãŒããŒã䜿çšããŸãã ãã®çŽåŸã«ãè¿œå ã®ãªããžããªãç Žæ£ããå¿ èŠãªãœãããŠã§ã¢ãã€ã³ã¹ããŒã«ããŸãã
echo "deb http://ftp.ubuntu.com/ubuntu/ natty main restricted universe multiverse" > /etc/apt/sources.list apt-get update apt-get install bash-completion openbox xserver-xorg xorg xbase-clients xterm ltsp-server-standalone arora gettext -y
次ã«ãäž¡æ¹ã®ãããã¯ãŒã¯ã€ã³ã¿ãŒãã§ã€ã¹ãæ§æããå¿ èŠããããŸãã ããã ãã®ããã1ã€ã¯å ±æãããã¯ãŒã¯ãããã1ã€ã¯ç¬èªã®ãµããããã確èªããŸãã ãã¡ã€ã«/ etc / network / interfacesãç·šéããŸãã
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.170 netmask 255.255.255.0 gateway 192.168.1.1 auto eth1 iface eth1 inet static address 192.168.22.1 netmask 255.255.255.0
次ã«ãã¯ã©ã€ã¢ã³ããåéããŸãã
ltsp-build-client
æåŸã«ãªããŸããããDHCPãµãŒããŒããã¡ã€ã«/etc/ltsp/dhcpd.confãã»ããã¢ããããŸãã
#authoritative; class "ltsp-clients" { match if substring (hardware,1,8) = "00:14:85"; } subnet 192.168.22.0 netmask 255.255.255.0 { #range 192.168.22.20 192.168.22.250; option domain-name "example.com"; option domain-name-servers 192.168.22.1; option broadcast-address 192.168.22.255; option routers 192.168.22.1; option root-path "192.168.22.1:/opt/ltsp/i386"; next-server 192.168.22.1; option subnet-mask 255.255.255.0; option root-path "/opt/ltsp/i386"; if substring( option vendor-class-identifier, 0, 9 ) = "PXEClient" { filename "/ltsp/i386/pxelinux.0"; } else { filename "/ltsp/i386/nbi.img"; } pool { allow members of "ltsp-clients"; range 192.168.22.20 192.168.22.250; } group { next-server 192.168.22.1; host test { deny-unknown-clients; hardware ethernet 00:14:85:47:AA:73; fixed-address 192.168.22.53; } } }
ããã§ã¯ãäœãã©ã®ããã«ããŒãããã©ã®ãµããããã§IPã¢ãã¬ã¹ãã客æ§ã«é åžãããã瀺ããŸãã ãŸãããœãªã¥ãŒã·ã§ã³ã®ãã¹ãã®ã¿ãè¡ã£ãŠãããããDHCPãµãŒããŒãçµç¹ã®ãããã¯ãŒã¯ã«ããã¡ã€ã³ã®DHCPãšç«¶åããããšã¯æãŸãããããŸããã ãã®ããã«ãæåã«åœŒã«ç¡èš±å¯ã®é»è©±ãããïŒãã·ã³ã圌ã«å€éã«ç¹å®ã®IPãèŠæ±ãããšããµãŒããŒã¯ãããéå§ããŸãïŒããµãŒããŒãIPãå²ãåœãŠãããšãã§ããMACã¢ãã¬ã¹ã®ããŒã«ãå²ãåœãŠãŸãã
ã»ãšãã©ãã¹ãŠãæåã®ããŒãã®æºåãã§ããŠããŸããããµãŒããŒã®IPã¯192.168.1.1ããã¯ã»ã©é ããããã¯ã©ã€ã¢ã³ãã«ã·ã¹ãã ãããŒããããšãã«NBDãµãŒããŒãæ¢ãå Žæãå³ããããšã¯ã§ããŸããã ãããã£ãŠã/ var / lib / tftpboot / ltsp / i386 / pxelinux.cfg / defaultãã¡ã€ã«ãä¿®æ£ããnbdportãã©ã¡ãŒã¿ãŒãnbdrootã«çœ®ãæããå¿ èŠããããŸãã ãã®ãã¡ã€ã«ã¯ãPXEãåºæ¬æ§æãšããŠããŒããããšãã«ã¯ã©ã€ã¢ã³ãã«ãã£ãŠããŠã³ããŒããããŸãã
default ltsp label ltsp kernel vmlinuz append ro initrd=initrd.img quiet splash nbdroot=192.168.1.170:2000
ãµãŒããŒãåèµ·åãããããã¯ãŒã¯äžã®ã¯ã©ã€ã¢ã³ãã§ããŠã³ããŒããéå§ãããš...ãã°ã€ã³ç»é¢ã衚瀺ãããŸãã
ãŸãããã®ãããªãã®ã èããŠã¿ããšãã¯ã©ã€ã¢ã³ãããèµ·åããŠãã°ã€ã³ããã·ã¹ãã ã§äœæ¥ã§ããããã«ãªããŸããã 確ãã«ãçŸæç¹ã§ã¯ãµãŒããŒã«ã¯xtermãšopenboxãããããŸããã ããã«ãããã¯ç§ãã¡ã®ã¿ã¹ã¯ãšå®å šã«äžèŽããŠããŸããã
å¿ èŠã«å¿ããŠãOSã¬ãã«ã§ãŠãŒã¶ãŒãåºå¥ããå¿ èŠã¯ãªãããã¹ãŠã®ãŠãŒã¶ãŒã1人ã®ãŠãŒã¶ãŒã§åæã«ã·ã¹ãã ã«ãã°ã€ã³ã§ãããšããŸãã ãã®åŸãèªèšŒçšã®ãœãããŠã§ã¢ãèµ·åããèªèšŒãæåãããšãã¡ã€ã³ã¢ããªã±ãŒã·ã§ã³ãã€ãŸããã©ãŠã¶ãèµ·åããŸãã ãŸããèªèšŒç»é¢ãåé€ããŠããŠãŒã¶ãŒãšããŠèªåçã«ãã°ã€ã³ããŠã¿ãŸãããã ãŸããäœæããŸãïŒ
useradd ltspclient -p $(perl -e'print crypt("1234", "aa")') -m echo "ltspclient ALL = NOPASSWD: ALL" >> /etc/sudoers echo "ltspclient ALL = NOPASSWD: ALL" >> /opt/ltsp/i386/etc/sudoers
LTSPã«ã¯ãéèŠã§ããŸããŸãªèšå®ãå«ãããšãã§ããå¥ã®æ§æãã¡ã€ã«ããããŸããããã¯ããã¡ã€ã«/var/lib/tftpboot/ltsp/i386/lts.confã§ãã ããã§æå®ããããã©ã¡ãŒã¿ãŒã¯ãã¡ã€ã³ãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®ããŒãæã«æ¢ã«äœ¿çšãããŠããããã®ã€ã¡ãŒãžã¯PXEã®ããŒãçŽåŸã«NFSãä»ããŠããŠã³ããããŸãã 次ã®ããã«å ¥åããŸãã
[Default] LDM_AUTOLOGIN=true LDM_USERNAME=ltspclient LDM_PASSWORD=1234 LOCAL_APPS=True XkbModel = pc104 XkbLayout = us,ru XkbOptions = "grp:alt_shift_toggle,grp_led:scroll"
ãæ³åã®ãšãããããã«ãããŠãŒã¶ãŒã¯ã·ã¹ãã ã«èªåçã«ãã°ã€ã³ã§ããŸãã ãã£ããã 空ã®X.Orgã§åœŒã¯äœããã¹ãã§ããããïŒ å ¥ååŸãç¬èªã®ãœãããŠã§ã¢ãèµ·åããå¿ èŠããããŸãã ããã«ã¯ãåžžã«çŽ æŽããã/home/ltspclient/.xinitrcããããŸãã ãããäœæããŠæžããŸãïŒ
#!/usr/bin/env bash export LANG="en_US.UTF-8" export LC_ALL="en_US.UTF-8" export LANGUAGE="en_US.UTF-8" export LC_CTYPE="en_US.UTF-8" openbox & authorize -style cleanlooks #xterm
ãããŠãã¡ãããããã«ã·ã³ããªãã¯ãªã³ã¯ãäœæããŸãïŒ
ln -s /home/ltspclient/.xinitrc /home/ltspclient/.xsession
ã¯ã©ã€ã¢ã³ããåèµ·åããŸãã Voilaãç¬èªã®ã¢ããªã±ãŒã·ã§ã³ãããŠã³ããŒãããåŸãéå§ããŸããïŒãµãŒããŒã«æ¢ã«å±éããŠãããšããŸãããïŒã ãµãŒããŒããèµ·åããŸããããéåžžã«å°ããã2 MBã®ã¡ã¢ãªãæ¶è²»ãããããç¹ã«å¿é ããå¿ èŠã¯ãããŸããã ãã1ã€ã¯ãã©ãŠã¶ãŒã§ãã èµ·ååŸããµãŒããŒã¯éåžžã«è¯å¥œã«ãµã°ããŸã...åã³25ããµãŒããŒäžã®ãªãœãŒã¹ãæ¶è²»ããŠãããšããäºå®ã«ãªããŸãã=ïŒæåã«ããããã¯ãŒã¯ã¯åžžã«ãã¹ãŠã®ã¯ã©ã€ã¢ã³ãçšã«ãã©ãŠã¶ãŒãæç»ããŸãïŒQtã¯åã«Xã®ç»åãç»åãšããŠæç»ããããšãèŠããŠããŸããïŒïŒ MBã®RAM 8 GBã®RAMãæèŒãããµãŒããŒã§ã¯ãæ倧80ã®ã¯ã©ã€ã¢ã³ããå±éã§ããŸããããããã®ã¯ã©ã€ã¢ã³ããããã»ããµãšãããã¯ãŒã¯ã絶ããé£ãå°œããããšã¯ãããŸããã
ããŠ...ã§ãããæŠäºãäž»ãªãã®ã¯æ©åã§ãïŒ ããŒã«ã«ã¢ããªã±ãŒã·ã§ã³ã«ã€ããŠã¯äœããããŸãããïŒ å€æããããã«ãããŒã«ã«ã¢ããªã±ãŒã·ã§ã³ã¯å®éã«ã¯ãµãŒããŒäžã«ãªãã¢ããªã±ãŒã·ã§ã³ã§ãããã·ã¹ãã ã®ããŠã³ããããã€ã¡ãŒãžã«çŽæ¥ã€ã³ã¹ããŒã«ãããŸãã ãããŠãçŸåšã®ãµãŒããŒã»ãã·ã§ã³ããã®ã©ãããŒã®åŸããããã¯ãŸã èµ·åããããšãã§ããŸãã ãã®å Žåã端æ«å šäœã«è² è·ãããããŸãã ãã®ãããªã¢ã€ãã¢ãå®è£ ããã«ã¯ãå¿ èŠãªã©ã€ãã©ãªãšãã©ãŠã¶ãç»åã«é ä¿¡ããå¿ èŠããããŸãã ç°¡åã«èšããšã次ã®ããã«ãªããŸãã
cd /opt/ltsp/i386/ mount -o bind /proc ./proc chroot ./ apt-get update apt-get install arora sudo flashplugin-nonfree sun-java6-plugin ssh gettext -y exit umount /opt/ltsp/i386/proc ltsp-update-sshkeys ltsp-update-image --arch i386
ããã¯ç°¡åã§ã-ã€ã¡ãŒãžã®å èã眮ãããŠãã/ opt / ltsp / i386 /ãã£ã¬ã¯ããªã«crhrotãå®è¡ããããã«å¿ èŠãªãœãããŠã§ã¢ãçŽæ¥é ä¿¡ãïŒäŸã®ããã«ããã©ãŠã¶ãaroraã§ãããšä»®å®ããŠïŒãã·ã¹ãã ã€ã¡ãŒãžãæŽæ°ããŸãã 以äžã§ãããŒã«ã«ã§å®è¡ã§ããã¢ããªã±ãŒã·ã§ã³ãã§ããŸããïŒ
ããã«å ç«ã¡ãç§ãèšã£ãããã«ãããããã«YouTubeã5ã€éããŠããã¿ããæã€ãã©ãŠã¶ã¯ãæ倧120 MBã®ã¡ã¢ãªãå¿ èŠãšããããšãå®éšçã«å€æããŸããã ããã¯ã128 MBã®RAMãæèŒãã端æ«ãèµ·åã§ããªãããšãæå³ããŸãã ã«ã³ãã³ã°ããããšããŸãããã æåã®ã¢ããªã±ãŒã·ã§ã³ãèµ·åããåŸãã·ã¹ãã ãã©ã¡ãŒã¿ã確èªãããããã«å¿ããŠããã©ãŠã¶ãèµ·åãããã©ãããããŒã«ã«ãŸãã¯ãªã¢ãŒãã§æ±ºå®ããããã«ããŸãã æåã®ã¢ããªã±ãŒã·ã§ã³ã®ã³ãŒãã«æ¬¡ãè¿œå ããŸãã
Widget.hãã¡ã€ã«ïŒ
... class Widget : public QWidget { Q_OBJECT public: explicit Widget(QWidget *parent = 0); ~Widget(); void readDeviceInfo(); ... protected: QString deviceUuidInfoFileName; ... }; ...
Widget.cppãã¡ã€ã«ïŒ
... Widget::Widget(QWidget *parent) : QWidget(parent) { ... //test for memory QString uuid = QUuid::createUuid ().toString().remove("{").remove("}"); deviceUuidInfoFileName = QDesktopServices::storageLocation(QDesktopServices::HomeLocation) + "/.info_" + uuid + "_mem.txt"; QString runFileName = QDesktopServices::storageLocation(QDesktopServices::HomeLocation) + "/deviceInfo_" + uuid +".sh"; QString program = "/usr/bin/ltsp-localapps \"free -m | grep \"Mem:\" > " + deviceUuidInfoFileName + "\""; QFile runFile(runFileName); if (runFile.open(QIODevice::WriteOnly | QIODevice::Text)){ QTextStream out(&runFile); out << program << "\n"; QFile::Permissions Permissions = runFile.permissions(); // Permissions == 0x6600; Permissions |= QFile::ExeOther|QFile::ExeUser|QFile::ExeOwner|QFile::ExeGroup; // Permissions == 0x7711; if(!runFile.setPermissions(Permissions)) { qDebug() << "Cannot set file Permitions"; return; } Permissions = runFile.permissions(); // Permissions == 0x6600; if(Permissions & (QFile::ExeOther|QFile::ExeUser|QFile::ExeOwner|QFile::ExeGroup)) { qDebug() << "Info", "Executable file"; } runFile.close(); } QProcess *ltspla = new QProcess(this); ltspla->start(runFileName); ltspla->waitForFinished(); runFile.remove(runFile.fileName()); QTimer::singleShot ( 500, this, SLOT(readDeviceInfo())); } void Widget::readDeviceInfo() { QFile file(deviceUuidInfoFileName); if (!file.open(QIODevice::ReadOnly | QIODevice::Text)){ qDebug() << "Error reading memory info!"; QTimer::singleShot ( 500, this, SLOT(readDeviceInfo())); return; } QTextStream in(&file); QString memory = in.readAll().split(" ",QString::SkipEmptyParts).at(1).trimmed(); qDebug() << "Memory:" << memory; file.close(); file.remove(file.fileName()); if (memory.toInt()<220){ ui->rbRunBrowserRemote->setChecked(true); } } ...
Bonyãããã...åºæ¬çã«ãã³ãã³ã/ usr / bin / ltsp-localappsâ free -m | grepâ MemïŒâ> filename.txtâãããŠããã¡ã€ã«filename.txtããããŒã¿ãèªã¿åããèµ·åãããã©ãŠã¶ã®ããŒãžã§ã³ã決å®ããŸãã RAMãç¹å®ã®ã¬ãã«ãããå°ããå ŽåããµãŒããŒããŒãžã§ã³ãèµ·åããŸãïŒãã以äžã®å Žåã¯ããŒã«ã«ããŒãžã§ã³ïŒã
ããã¯äœãäžããŸããïŒ ãããŠãããªãå ·äœçãªçµæ...ãã«ã¹ã¯ãªãŒã³ã§å±éããããŒã«ã«ãã©ãŠã¶ãèµ·åããåŸãã¯ã©ã€ã¢ã³ãã¯æ¬è³ªçã«ãµãŒããŒãå¿ããŸãã Xãšã¢ããªã±ãŒã·ã§ã³ã®äž¡æ¹ãããŒã«ã«ã§åæã«å®è¡ãããŠããããããµãŒããŒOSã¯æç»ãããŸãããã€ãŸããããŒã¿ã¯ãããã¯ãŒã¯ãä»ããŠéä¿¡ãããŸããã ããã«ãèšç®ã¯ãã¹ãŠããŒã«ã«ã§åãããã«è¡ããããµãŒããŒã¯å®å šã«äžèŠã§ãã ãã£ããã ããïŒ ããã«ãããéåžžã®é¡§å®¢ãå€ããå°ãªãã圌ãã®åŒ±ãå åŒããåé¢ããããšãã§ããŸãã åè ã¯ããèªäœããªãœãŒã¹ãæäŸããåŸè ã¯ãµãŒããŒã«å¯çããŸãã
éåžžã®ã¯ã©ã€ã¢ã³ããšã»ãŒåãã¯ã©ã€ã¢ã³ããããããšãåãå ¥ãããšãã¿ã¹ã¯ã®äžéšãéæããŸããããµãŒããŒã®è² è·ãååã«ãªãããã«ããã»ã¹ãæé©åããããšãã§ããŸããã çµå±ã®ãšãããéåžžã®ã¯ã©ã€ã¢ã³ãã¯ãããŒãæãšèªèšŒäžã®çãéã ããããå¿ èŠãšããŸãã ãã¡ããããã«ããã¯ã¯æ®ã£ãŠããŸãããããã¯å€ãã®äººã ãæ¥ãŠã¯ã©ã€ã¢ã³ãã®é»æºãã¿ã³ãæŒãæã§ãã ããã«ã€ããŠäœãããå¿ èŠã¯ãããŸããããã©ãã£ãã¯ã®è² è·ãé¡èã«ãªããŸãã ãããããããæ¯èŒççžå¯Ÿçã§ãã çç±ã¯æ¬¡ã®ãšããã§ããããŒãããã»ã¹ã¯2ã€ã®æ®µéã«åããããšãã§ããŸãã
1ïŒPXEãããŠã³ããŒã-eth1ã€ã³ã¿ãŒãã§ãŒã¹ããçŽ8 Mbã®ãã©ãã£ãã¯ãå¿ èŠã§ãã ãã®åŸãå°ãã®éäŒæ¢ããåæåãšããŠã³ãçšã®ã¡ã€ã³OSã®ã€ã¡ãŒãžãèŠæ±ãããŸã
2ïŒã¡ã€ã³OSã®ããŠã³ããŒããšã¯ãã«ãŒãã«ãã©ã€ãã©ãªãããŒã¢ã³ã®èµ·åããã®ä»ã®ãŽãã®èªã¿èŸŒã¿ã§ãã ãã®æ®µéã§ã¯ãeth0ã€ã³ã¿ãŒãã§ã€ã¹ãä»ããŠãããã¯ãŒã¯çµç±ã§éä¿¡ãããçŽ16 MBã®ããŒã¿ãå¿ èŠã§ãã ããã«ã¯ãèªåãã°ã€ã³ãšæåã®ã¢ããªã±ãŒã·ã§ã³ã®èµ·åãå«ãŸããŸãã
ããã¯ã©ãããããšã§ããïŒ ãããã¯ãŒã¯ã«ãŒãã®é床ã100 Mb / sã®å Žåãããã¯12.5 MB / sã§ãã 10ã«åãäžããŠãè¡çªãªã©ã«é¢é£ããããŸããŸãªæ¬ é¥ãæé€ããŸãã 次ã ããšãã°ã3çš®é¡ã®ç«¯æ«ããããŸãããã¹ãŠã®ç«¯æ«ãåå9æã«åæã«ãªã³ã«ãªã£ãå Žåã§ãããããã«ç°ãªãé床ã§èªã¿èŸŒã¿ãéå§ããŸãã åã¯ã©ã€ã¢ã³ãã«ã€ããŠãããŒãæã«ã26 mbã®ããŒã¿ã転éããå¿ èŠããããŸããã€ãŸããäžè¬çã«ã¯ã©ã€ã¢ã³ãããšã«ã3ç§ïŒãã¡ãããããã§ã¯ãããŸããïŒã3 * 300ãæããŸãïŒæäžé»ç¯ããåæã«éãå¢ããŸãïŒãŸãã¯ã1åãŸãã¯2ã€ã®ã¯ã©ã€ã¢ã³ããå«ãæéïŒ900ç§ãŸãã¯900/60 = 15åããŸãã¯900 * 26 = 23,400ã¡ã¬ãã€ãã®ããŒã¿ãåºåãããŸãã ããªãèŠãç®ãæªãã§ããã äžè¬çã«ã¯ãã¡ããã§ããããããªã«èšã£ãŠããããã§ã¯ãããŸããã çµå±ã®ãšããã2ã€ã®ã€ã³ã¿ãŒãã§ã€ã¹ããããããããã«ç¬èªã®ããŒã¿éããã³ãã³ã°ãããŸã-900 * 16 = eth0ãä»ããŠ14,400 mbããã³eth1ãä»ããŠ900 * 8 = 7,200 mbã ãããã¯ãŒã¯ã®è² è·ã¯é«ããŸãŸã§ãããåã€ã³ã¿ãŒãã§ã€ã¹ã®è² è·ã¯å€§å¹ ã«æžå°ããŸãã æ®å¿µãªããããšã«ããããã«ã¯éåžžã«ããã«ããã¯ãæ®ã£ãŠããããããåé¿ããããšã¯ã§ããªãããã§ãã ã®ã¬ãããã€ã³ã¿ãŒãã§ã€ã¹ãã€ã³ã¹ããŒã«ãããã1ã€ã®ç«¯æ«ã®ããŒãæéã«äŸåãããã®ããããã§ãã ããã¯çŽ45ç§ã«çžåœãããµãŒããŒããããŒã¿ãããŠã³ããŒãããããã»ã¹å šäœãåºãããŸãã
ãããŠãã¯ããåã®æ®µèœã®ç§ã®èšç®ã®æ£ç¢ºæ§ã«ã€ããŠç¢ºä¿¡ãæãŠãªããã®ããããŸããã©ããéãå Žåã¯ä¿®æ£ããŠãã ããã
äžéçµè«...
以åã®ãªãã·ã§ã³ãšæ¯èŒãããããã®éçã«å ã 䜿çšãããŠãããã®ãšæ¯èŒããŠã çæ³çãªæ¡ä»¶äžã§ã¯ããµãŒããŒã®ååãããŒãããŠãäœæ¥ã®äžéšããã¿ç®±ã®äœæ¥ã«ç§»ãããšãã§ããŸãããããã¯ãã¿ç®±ã§ã¯ãããŸãã...ããã«ããã©ã°ã€ã³ãåããå®å šãªWebKitãã©ãŠã¶ãŒãè©°ã蟌ãããšãã§ããããããŠãŒã¶ãŒã¯å€ãã®Flashã«ã«ããã§ããŸã/ html5-toysã䜿çšããŠè·å Žã§çŽæ¥ãã«ããèŠèŽããŸãïŒãã ãã顧客ã¯ãã©ã°ã€ã³ãéè¡ã®ã¯ã©ã€ã¢ã³ãã«å¿ èŠã§ãããšèšããŸãããç§ãã¡ã¯çç¥ã£ãŠããŸã=ïŒïŒã
倧äžå€«ããã¹ãŠãé 調ã§ã...äœæ¥ã®ååãå®äºããŸããã ããããæ倧ã§80人ããµãŒããŒã«ãµãŒãã¹ãæäŸã§ããããšãæ¢ã«èªèããŠããããµãŒããŒãå¯èœæ§ã®éçã«ãµãŒãã¹ãæäŸããã ãã§ãªããåäœããããã«ããšã®æ¥ç¶ãç¶æããå¿ èŠããããšããäºå®ãèæ ®ããŠããã«ãããããããçŽ150ã®æ»ãã ã¯ã©ã€ã¢ã³ãããŸã ãããŸã150çšåºŠã®éåžžã®ã¯ã©ã€ã¢ã³ãã¯ããµãŒããŒã«å¿«é©ã«èœã¡çãããšãã§ããããšãããããŸããã ããããã§ã¯ãªããã空ã§ã¯ãªã...次ã«äœããã¹ããïŒ ãããŠãæã ã¯æå©ã«æ¥ãŸã...
ã¯ã©ã¹ã¿ãŒïŒ ã¯ã©ã¹ã¿ãŒïŒ
ã¯ããã¯ããã¯ã©ã¹ã¿ãŒã§ãïŒ ãã€ã³ãã§ãã ãã®éçºäžã«ãLTSPã¯ãããŒããã©ã³ãµãŒãããã«ã¯Webã€ã³ã¿ãŒãã§ã€ã¹ãåãããµãŒããŒã¯ã©ã¹ã¿ãŒãäœæã§ããããã«ãªããŸã§ã«æé·ããŸããã ãUUUUUUã¯....ã - å³ããã·ããªã¢ãã¬ãŒãèªããŸããã ããŠãLTSPã¯ã©ã¹ã¿ãŒããããã€ããããã® æè¡çãªèª¬æãšããã¥ã¢ã«ãèªã¿ã«è¡ããŸããã
æåã«ããããã®ltsp-clusterã³ã³ããŒãã³ããäœã§ããããç解ããŸãããã ãŸããLTSP-Clusterèªäœã¯ãLTSPé åžãããã®ããã©ã«ãã®é åžã«å«ãŸããltspãµãŒããŒçšã®ãã©ã°ã€ã³ã®ã»ããã§ãã ããã«ãã¯ã©ã¹ã¿ãªã³ã°ããµããŒãããã¯ã©ã€ã¢ã³ããæ§ç¯ããã«ã¯ãä»ã«äœãã€ã³ã¹ããŒã«ããå¿ èŠã¯ãããŸãã; --ltsp-clusterãªãã·ã§ã³ã§ã¯ã©ã€ã¢ã³ãã®æ§ç¯ãéå§ããã ãã§ã
ãããžã§ã¯ãã«ã¯æ¬¡ã®ã³ã³ããŒãã³ããå«ãŸããŸãã
- Load Balancer Serverã¯ãæ¥ç¶ãããŠãããã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãç£èŠããã¡ã€ã³ã®è² è·å¶åŸ¡ãµãŒããŒã§ãã
- ã³ã³ãããŒã«ã»ã³ã¿ãŒïŒWebã€ã³ã¿ãŒãã§ã€ã¹ïŒ-æ¥ç¶ãããã¯ã©ã€ã¢ã³ããšãµãŒããŒã®è² è·ã«é¢ããæ å ±ãååŸã§ããWebã€ã³ã¿ãŒãã§ã€ã¹ã 調æŽãè¡ããŸãã
- GNU / Linux / Windowsçšã®Load Balancer Agent-åã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã«ã€ã³ã¹ããŒã«ããããµãŒããŒã®è² è·ã«é¢ããæ å ±ãLoad Balancer Serverã«éä¿¡ããŸã
- Accounts Manager-Load Balancer Agentãšåããã·ã³ã«ã€ã³ã¹ããŒã«ãããããŒã¢ã³ã å¿ èŠã«å¿ããŠããŠãŒã¶ãŒãåçã«äœæããã³åé€ã§ããŸãã ãŸããã€ãŸãããŠãŒã¶ãŒã®ã¡ã€ã³ãµãŒããŒã§ltspclientãéå§ããŸããããã¢ããªãµãŒããŒã§ã¯æã£ãŠããªãããã§ã...ãããŠèªåãã°ã€ã³ããããŸã...ããã§ãã¢ã«ãŠã³ããããŒãžã£ãŒã¯ããµãŒããŒã®1ã€ã«ã¢ã¯ã»ã¹ãããšãã«ãã®ãŠãŒã¶ãŒã®èªåäœæãç£èŠããŸãã
- PXEæ§æãšãã£ã¿ãŒ-ã³ã³ãããŒã«ã»ã³ã¿ãŒãããã©ã¡ãŒã¿ãŒãåãåãããããã«åºã¥ããŠPXEæ§æãã¡ã€ã«ãçæããŸãã
- NX Loadbalancer-SSHãµãŒããŒãèµ·åããnxãŠãŒã¶ãŒã®æ¥ç¶ãç£èŠããå¿ èŠã«å¿ããŠç¹å®ã®ãµãŒããŒã«ã¹ããŒããŸãã
ãããããã§...
ãŸãããµãŒããŒã§ãã¯ã©ã¹ã¿ãŒãµããŒããªãã·ã§ã³ã䜿çšããŠã¯ã©ã€ã¢ã³ããåæ§ç¯ããå¿ èŠããããŸãã
ltsp-build-client --arch i386 --ltsp-cluster --prompt-rootpass --accept-unsigned-packages
ã¢ã»ã³ããªäžã«ãåçãå¿ èŠãªããã€ãã®è³ªåããããŸãã
Configuration of LTSP-Cluster NOTE: booleans must be answered as uppercase Y or N Server name: 192.168.1.170 Port (default: 80): Use SSL [y/N]: N Enable hardware inventory [Y/n]: Y Request timeout (default: 2): 0
å°æ¥ããããã®ãã©ã¡ãŒã¿ãŒã¯ãã¡ã€ã«/opt/ltsp/i386/etc/ltsp/getltscfg-cluster.confã§ä¿®æ£ã§ããŸãã ãã®åŸãrootãã¹ã¯ãŒããå ¥åããããã«æåŸ ãããŸãã
ãããå®äºããããã³ã³ãããŒã«ã»ã³ã¿ãŒãšLoad Balancer Serverãåãç©çãµãŒããŒãç°ãªãä»®æ³ãã·ã³ããŸãã¯ç°ãªãä»®æ³ãã·ã³ã«å±éããæ¹æ³ã決å®ããå¿ èŠããããŸãã ããããããããããã«ãã¡ã€ã³ãµãŒããŒãšåãå Žæã«å±éããŸãã
ãã¡ãããæåã®ã¹ãããã¯ã³ã³ãããŒã«ã»ã³ã¿ãŒã§ãã
apt-get install ltsp-cluster-control postgresql --no-install-recommends
config /etc/ltsp/ltsp-cluster-control.config.phpãä¿®æ£ããŸããã
... $CONFIG['loadbalancer'] = "192.168.1.170"; #Hostname of the loadbalancer ...
PostgreSqlã®æ°ãããŠãŒã¶ãŒãšæ°ããããŒã¿ããŒã¹ãäœæããŸãïŒ/etc/ltsp/ltsp-cluster-control.config.phpã®ãããªãã¹ã¯ãŒã-ltspclusterïŒïŒ
sudo -u postgres createuser -SDRlP ltsp sudo -u postgres createdb ltsp -O ltsp
次ã«ãäœæãããããŒã¹ã«ã¹ããŒã èªäœãå±éããå¿ èŠããããŸããéè¡ã¯çããªããŸãã
cd /usr/share/ltsp-cluster-control/DB/ cat schema.sql functions.sql | psql -h localhost ltsp ltsp wget http://bazaar.launchpad.net/%7Eltsp-cluster-team/ltsp-cluster/ltsp-cluster-control/download/head%3A/controlcenter.py-20090118065910-j5inpmeqapsuuepd-3/control-center.py wget http://bazaar.launchpad.net/%7Eltsp-cluster-team/ltsp-cluster/ltsp-cluster-control/download/head%3A/rdpldm.config-20090430131602-g0xccqrcx91oxsl0-1/rdp%2Bldm.config apt-get install python-pygresql /etc/init.d/apache2 stop python control-center.py rdp+ldm.config /etc/init.d/apache2 start
ãã®ãã¹ãŠã®åŸããªã³ã¯192.168.1.170/ltsp-cluster-control/Adminã«ç§»åããŸãããã®ã€ã³ã¿ãŒãã§ã€ã¹ã§ã¯ãã€ã³ã¿ãŒãã§ã€ã¹ã§æ¢ã«çªãããšãã§ããŸã...ããã«æåã®ããŒãžã§ãããã€ãã®éèŠãªãã©ã¡ãŒã¿ãŒãæå®ããå¿ èŠããããŸãã
LANG = en_US.UTF-8 LDM_DIRECTX = True LDM_SERVER = %LOADBALANCER% LOCAL_APPS_MENU = True SCREEN_07 = ldm TIMESERVER = ntp.ubuntu.com XKBLAYOUT = us,ru
æåã®ãã®ãçµäºããŸãã...次...ããŒããã©ã³ãµãŒ...åããã·ã³ã«ãããã€ãããŸããïŒ
apt-get install ltsp-cluster-lbserver --no-install-recommends
config /etc/ltsp/lbsconfig.xmlïŒ
<?xml version="1.0"?> <lbsconfig> <lbservice listen="*:8008" max-threads="2" refresh-delay="60" returns="$IP"/> <lbslave is-slave="false"/> <mgmtservice enabled="true" listen="*:8001"/> <nodes> <group default="true" name="default"> <node address="http://192.168.1.171:8000" name="ltsp-appserv01"/> </group> </nodes> <rules> <variable name="LOADAVG" weight="50"> <rule capacity=".7"/> </variable> <variable name="NBX11SESS" weight="25"> <rule capacity="$CPUFREQ*$CPUCOUNT*$CPUCOUNT/120" critical="$CPUFREQ*$CPUCOUNT*$CPUCOUNT/100"/> </variable> <variable name="MEMUSED" weight="25"> <rule capacity="$MEMTOTAL-100000"/> </variable> </rules> </lbsconfig>
å°æ¥ã®ç®çã®ããã«ãå éšã®ãã©ã¡ãŒã¿ãŒãå€æŽããã ãã§ãããšèšããŸãã
<nodes> <group default="true" name="default"> <node address="http://192.168.1.171:8000" name="ltsp-appserv01"/> </group> </nodes>
ããã«ãã¹ã¬ããã®æ°ãå€æŽã§ããŸãã ããã©ã«ãã§ã¯ã1ãèšå®ããããšããå§ãããŸãïŒçç±ã¯ãããŸããïŒ
<lbservice listen="*:8008" max-threads="1" refresh-delay="60" returns="$IP"/>
ããã§ããæ³åã®ãšãããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãè¿œå /åé€ã§ããŸãã æåŸã«ãããŒããã©ã³ãµãŒãåèµ·åããŸãã
/etc/init.d/ltsp-cluster-lbserver restart
ãããç§ã¯æžãã®ã«ããããããŠããŸã...ãŸãã倧äžå€«ã çŸæç¹ã§ã¯ãWebãã§ã€ã¹ãšããŒããã©ã³ãµãŒãåããå®å šã«æ§æããã1ã€ã®ã¡ã€ã³ãµãŒããŒããããŸãã çè«çã«ã¯ãæ°ããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãšæ°ããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒããããã€ããã ãã§ããããããã€ããããšããã©ã³ãµãŒã®èšå®ãå°ãç·šéããŸãã
ããããããã©ã³ãµãŒããã¡ã€ã³åltsp-appserv01ãèªèã§ããããã«ããå¿ èŠããããŸããããã«ã¯ãlbserverã®/ etc / hostsã«æ¬¡ã®ãããªè¡ãè¿œå ããå¿ èŠããããŸãã
192.168.1.171 ltsp-appserv01
ã¡ãªã¿ã«ãä»»æã®ã¯ã©ã€ã¢ã³ãããããŒããããšããã®ã¯ã©ã€ã¢ã³ããã¢ããªã±ãŒã·ã§ã³ãµãŒããŒ192.168.1.170ãã€ãŸãã¡ã€ã³ãµãŒããŒã«æ¥ç¶ãããŠãããšããæ å ±ã確èªã§ããŸãã ãã®ç¹ã«é¢ããŠãã³ã³ãããŒã«ã»ã³ã¿ãŒã§ã¯ãã°ã匷åãã€äž»ã«æžã蟌ãŸããã¯ã©ã€ã¢ã³ãã®MACã¢ãã¬ã¹ãããŒã¿ããŒã¹ã«èšé²ãããŸãã ã«ãŒããµãŒããŒã«ãã¢ã«ãŠã³ããããŒãžã£ãŒãã€ã³ã¹ããŒã«ããå¿ èŠãããããšãæããŠãããŸããããŸã ã€ã³ã¹ããŒã«ããããªãå Žåã¯ãæåã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒã®ã»ããã¢ããã«é²ãããšããå§ãããŸãã ããŠãWebã€ã³ã¿ãŒãã§ãŒã¹ã®ã¹ã¯ãªãŒã³ã·ã§ããã ãã®ããã¹ããäœããã®åœ¢ã§å€æ§åããã«ã¯ïŒ
ãã®ãããä»®æ³ãã·ã³ãŸãã¯å¥ã®ã³ã³ãã¥ãŒã¿ãŒã«Ubuntu Server 11.04 32ããããé 眮ããŸããã ãã¹ãåãã€ã³ã¹ããŒã«ããããã»ã¹ã§ãltsp-appserv01ãšããŠæå®ããOpen SSHãµãŒããŒã®ã€ã³ã¹ããŒã«ã®ããŒã¯ãä»ããŸãã 䟿å®äž...ã€ã³ã¹ããŒã«ãæ£åžžã«å®äºãããããã¡ã€ã«/ etc / network / interfacesãèµ·åããŠæåã«ç·šéããŸãã deja vuã®å¥åŠãªæãããããŸããïŒ
auto lo iface lo inet loopback auto eth0 iface eth0 inet static address 192.168.1.171 netmask 255.255.255.0 gateway 192.168.1.1
圌ãã¯ããããã¢ãã¬ã¹171ãæã€ã³ã³ãã¥ãŒã¿ãŒã§ããããšã瀺ããŸãã-ãã®ãããªIPãlbserver configã«ç»é²ãããŠããŸãã ã€ã³ã¿ãŒãã§ã€ã¹ãåèµ·åããŸãã
$ sudo ifdown eth0 && sudo ifup eth0
ã¢ãã¬ã¹ãæ£åžžã«å€æŽãããŸããã ç¶ããŸãããã ãããŠãæå ã®ã¿ã¹ã¯ã«å¿ããŠãã€ãã³ãã®éçºã«2ã€ã®ãªãã·ã§ã³ãéžæã§ããŸãã
1ïŒubuntu-desktopãã€ã³ã¹ããŒã«ããã ãã§ããŠãŒã¶ãŒããã°ã€ã³ãããšãæšæºã®ubuntaã·ã§ã«ãèµ·åããŸã
2ïŒå¿ èŠãªãã®ãæ£ç¢ºã«å®è¡ã§ããŸãã ãã®éããã©ããŸã...
beatããããã©ãã¯ã«åã³èžã¿ã€ããŸãïŒ
echo "deb http://ftp.ubuntu.com/ubuntu/ natty main restricted universe multiverse" > /etc/apt/sources.list apt-get update apt-get install bash-completion openbox xserver-xorg xorg xbase-clients xterm ltsp-server ltsp-server ltsp-cluster-lbagent ltsp-cluster-accountmanager arora -y update-rc.d -f nbd-server remove
ãã¹ãŠãå®äºããã®ãåŸ ã£ãŠããŸã...å®éãããã§ããããšã¯ãããŸãããæåã«ãšãŒãžã§ã³ãã§ãµãŒããŒããªããŒããã次ã«ã¡ã€ã³ã®ãã®ã§ãªããŒãããŸãã ã¯ã©ã€ã¢ã³ãããå床ããŒãããããšããŠããŸãã ãããŠãå€ããªã£ã192.168.1.170ãã€ãŸãã¡ã€ã³ãµãŒããŒãã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãšããŠäœ¿çšãããŠããããšãããããŸãããè² è·ã¯éåžžã«äœããLoad Balancerã¯ä»ã®ãµãŒããŒã«è² è·ã転éããªããããããã¯é©ãããšã§ã¯ãããŸãããæéãçµã€ã«ã€ããŠããã¡ããããã¯å€åããä»ã®ãµãŒããŒã¯è² è·ã®äžéšãè² ããªããã°ãªããŸããã
ãããã·ã£ãºïŒãã©ã³ã·ã³ã°ãæ©èœããããã«ã¯ãã¢ã«ãŽãªãºã ãç¬èªã«çºæãããµãŒããŒã®ãªã¹ãå šäœãããŒã«ã«å ¥ããæåŸã«ãã¹ãŠã®ãµãŒããŒãã€ã¡ãŒãžã®ssh_known_hostsãã¡ã€ã«ã«è¿œå ããå¿ èŠããããŸããã¿ã€ãïŒ
1ïŒã¢ãã¬ã¹ããŒã«ããããè¡ãã«ã¯ããã¡ã€ã«/var/lib/tftpboot/ltsp/i386/lts.confã®æåŸã«æ¬¡ã®è¡ãè¿œå ããŸãã
MY_SERVER_LIST = "192.168.1.170 192.168.1.171"
2ïŒã¢ã«ãŽãªãºã ãèæ¡ïŒç§ã¯åŒã£åŒµã£ããotesdaãïŒããã¡ã€ã«ã«æžã蟌ã¿ãŸãã
#!/bin/sh max_rank=-1 max_server='' for server in $MY_SERVER_LIST; do rank=$(nc $server 9571 | sed -n 's/rating://p') if [ "$rank" -gt "$max_rank" ]; then max_rank="$rank" max_server="$server" fi done echo "$max_server"
ç§ãã¡ã¯å®è¡ããŸãïŒ
chmod a+x /opt/ltsp/i386/usr/share/ltsp/get_hosts
è€éãªããšã¯ãããŸããããã¹ãŠã®NetCatãµãŒããŒã調ã¹ãŠãæãè² è·ã®å°ãªããµãŒããŒãéžæããŠãã ããããã®ã¹ã¯ãªããã¯ããã©ã³ã·ã³ã°ãµãŒããŒã䜿çšããããã«å€æŽã§ããŸããããã®ãããªåçŽãªã¹ã¯ãªããã䜿çšãããšãååãšããŠlbagentãšlbserverãåãé€ãããšãã§ããããããããè¡ããããããŸããã
3ïŒãã¹ãŠã®è¿œå ãµãŒããŒã®æ§æãšèµ·åäžã«ãDSAããŒãšRSAããŒã®ãã¢ãæ¢ã«çæããŸãããã¯ã©ã€ã¢ã³ããè¿œå ã®ãµãŒããŒã«æ¥ç¶ã§ããããã«ããã«ã¯ãçæãããå ¬éããŒãè¿œå ã®ãµãŒããŒããæåã«ã¡ã€ã³ãµãŒããŒã«ã³ããŒããŠãããã€ã¡ãŒãžã«ã³ããŒããå¿ èŠããããŸãããããè¡ãã«ã¯ããŸããè¿œå ã®åãµãŒããŒã§æ¬¡ã®æé ãå®è¡ããŸãã
ltsp-update-sshkeys --export ssh_known_hosts.192.168.1.171 scp ssh_known_hosts.192.168.1.171 root@192.168.1.170:/etc/ltsp/
ãããŠãã¡ã€ã³ãµãŒããŒã§ïŒ
ltsp-update-sshkeys && ltsp-update-image --arch i386 && echo -e 'default ltsp\nlabel ltsp\nkernel vmlinuz\nappend ro initrd=initrd.img quiet splash nbdroot=192.168.1.170:2000\n' > /var/lib/tftpboot/ltsp/i386/pxelinux.cfg/default
ç§ãã¡ã¯ãã§ãã¯ããŸãïŒ
cat /opt/ltsp/i386/etc/ssh/ssh_known_hosts
ç§ãç解ããŠããªãå¯äžã®ããšã¯ããã®ããã«åæ£ãµãŒããŒãå¿ èŠãªããšã§ã...ããããå°æ¥ã®ãªãªãŒã¹ã§ã¯ããã¡ã€ã«/ opt / ltsp / i386 / usr / share / ltsp / get_hostsã§ãããä»ã¯ããã§ã¯ãããŸããããšã«ãããä»ã§ã¯ç¢ºãã«ãã©ã³ã¹ãåããŠããŸãã
ã¡ãªã¿ã«ãã¹ã¯ãªãã/usr/share/pyshared/lbserver/test_comm.pyã䜿çšããŠããã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãŸãã¯ãã®ã¢ããªã±ãŒã·ã§ã³ãµãŒããŒãã©ã®ããã«ããŒããããŠãããã確èªã§ããŸãããŸããå¿ èŠãªãµãŒããŒã®ã¢ãã¬ã¹ãæå®ããŸãïŒ
rpcserver = xmlrpclib.ServerProxy("http://192.168.1.171:8000")
次ã«ããããå®è¡ããŠçµæã確èªããŸãã
$ python /usr/share/pyshared/lbserver/test_comm.py [{'name': 'MEMTOTAL', 'value': 507788}, {'name': 'CPUFREQ', 'value': 3502.64}, {'name': 'CPUCOUNT', 'value': 1}, {'name': 'DISTRO', 'value': 'Ubuntu 11.04'}, {'name': 'IP', 'value': '192.168.1.171'}, {'name': 'HOSTNAME', 'value': 'ltsp-appserv01'}, {'name': 'ADDRESSES', 'value': '192.168.1.171'}, {'name': 'MEMFREE', 'value': 476144}, {'name': 'MEMUSED', 'value': 31676}, {'name': 'LOADAVG', 'value': 0.0}, {'name': 'USERS', 'value': 'kafeg'}, {'name': 'NBUSERS', 'value': 1}, {'name': 'NBX11SESS', 'value': 1}]
ã¹ã¯ãªãã/usr/share/pyshared/lbserver/test_mgmt.pyã¯ãã¡ã€ã³ãµãŒããŒã«æ¥ç¶ããããã€ãã®æ å ±ãè¿ãããšãã§ããŸãã
rpcserver = xmlrpclib.ServerProxy("http://192.168.1.170:8001") $ python /usr/share/pyshared/lbserver/test_mgmt.py [{'default': True, 'nodes': [{'active': True, 'lastWeight': 100, 'values': [{'critic': False, 'name': 'MEMTOTAL', 'value': 507788}, {'name': 'LOADAVG'}, {'critic': False, 'name': 'ADDRESSES', 'value': '192.168.1.171'}, {'critic': False, 'name': 'IP', 'value': '192.168.1.171'}, {'critic': False, 'name': 'HOSTNAME', 'value': 'ltsp-appserv01'}, {'critic': False, 'name': 'NBUSERS', 'value': 1}, {'critic': False, 'name': 'NBX11SESS', 'value': 1}, {'critic': False, 'name': 'MEMFREE', 'value': 476052}, {'critic': False, 'name': 'CPUCOUNT', 'value': 1}, {'critic': False, 'name': 'CPUFREQ', 'value': 3502.64}, {'critic': False, 'name': 'USERS', 'value': 'kafeg'}, {'critic': False, 'name': 'MEMUSED', 'value': 31768}, {'critic': False, 'name': 'DISTRO', 'value': 'Ubuntu 11.04'}], 'name': 'ltsp-appserv01', 'address': 'http://192.168.1.171:8000'}], 'name': 'default'}]
å šéš
LTSPã«ã€ããŠæãäžããããšãã§ããã®ã¯ããããããã ãã§ããããæåŸã«ããã·ã¢èªã§æè¡ã«é¢ããæ å ±ãã»ãšãã©ãªãã®ã§ãéåžžã«é åçã«èŠããŸããããã®ãããªè©³çŽ°ã§ãã¹ãŠãããã§ãã€ã³ãããããšããŸãããæåã®èµ·ååŸã端æ«ããKDEã«å ¥ãé³ãèãããšãã®é©ãã¯äœ
ã§ããããã