2012 openstack + kvm = onamae.com vps #2 ~ vnc and snapshot ~

56
OpenStack + KVM = お名前.com VPS 開発担当者が語る、ここだけの話#2 vnc強化, snapshot 1 OpenStack + KVM = お名前.com VPS ~開発担当者が語る、ここだけの裏話#2~ 新機能 vnc強化とsnapshotについて K-OF 2012, Osaka: 2012/11/10 http://www.slideshare.net/chroum/2012-osc-kyoto-openstack-vps-kvm GMOインターネット株式会社 システム本部 サービス開発部 システムインテグレーションチーム 郷古 直仁

Upload: naoto-gohko

Post on 06-May-2015

3.211 views

Category:

Documents


0 download

DESCRIPTION

OpenStack by VPS KVM onamae.com #2, new function; vnc and snapshot

TRANSCRIPT

  • 1.OpenStack + KVM = .com VPS #2 vnc, snapshotOpenStack + KVM = .com VPS#2 vncsnapshotGMO K-OF 2012, Osaka: 2012/11/10http://www.slideshare.net/chroum/2012-osc-kyoto-openstack-vps-kvm 1

2. OpenStack + KVM = .com VPS #2 vnc, snapshot .com VPS VPS CentOS 6.x + griddynamics.net OpenStack Diablo OpenStackVPS :1) html5 VNC (vmvga ) :2) html5 VNC (us keymap) :3) snapshot 2 3. OpenStack + KVM = .com VPS #2 vnc, snapshot (, Naoto Gohko) @naoto_gohko , : GMO : : GMOSI-er : Bekkoame INTERNET, 3WEB, webmail, .com web .com VPS VZ(Virtuozzo) ; GMO; .com VPS KVM ; ; w 3 4. OpenStack + KVM = .com VPS #2 vnc, snapshotGMO (1) .com VPS VZ(2) GMO Virtuozzo(OpenVZ) OSswapEL6, Best EffortKVM .com VPS KVM Linux KVM KVM VPSweb LB(Brocade ADX) VDI, Desktop Fusion-IO (3) .com Desktop Hyper-V3, Thin ClientWindows8Hyper-V VM, WindowsGMOGMO VPS GMO Public (Xen, KVM) SQALE (payperboy&co)KVMPlesk API PaaSAPI4 5. OpenStack + KVM = .com VPS #2 vnc, snapshotGMO http://cloud.gmo.jp/LB/ Fusion IO ioDriveUnit, US-Unit (Unit) TGS 2012 5 6. OpenStack + KVM = .com VPS #2 vnc, snapshotGMOXen (CentOS 5.3 dom0 + Xen 3.2)Scientic Linux / CentOS 6.0 KVM==> VPS-KVMOpenStack Diablo.com VPS KVM/ 6 7. OpenStack + KVM = .com VPS #2 vnc, snapshotSQALE (Payperboy&co, PaaS)RubygithubdeploywebRuby on RailsSinatraPaaS==> web, dbdeploy 7 8. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS VZ (Virtuozzo)VPS VZ(Virtuozzo := OpenVZ)VirtualHostOS (OS)Linux (FreeBSDReactOS)SwapdiskHostOOMkillerVPS KVMOpenStack(OpenVZ, LXC)8 9. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS VZ (Virtuozzo)OS()chroot ==> OScong ==> VPS VZ Linux KVMlibguestfsOS()kernelOSHost OSGuest OS/dev (VPN) 9 10. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS KVM (native KVM)ISO uploadOSLive CD boothttp/https/sshvirtIO ON/OFFGMO()VIF(spoongIP)REST APIOpenStack Diablo() (1) 10 11. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS KVM web (.Net + IIS) Windows ServerDB (mysql) (Linux KVM)websocket-VNC(noVNC)ssh/consolesftprabbitmqdhcpldap(dhcp, ssh)nova/keystone DB(mysql)nova Manage/APIISO upload storage (GlusterFS, NFS)Linux KVM (nova Compute) CentOS 6.x nova Compute, collectd, kvm11 12. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS KVM InternetL3 SW L3 SWAPI / Manage web (.Net) API / Manage mysqldb API/ DBAPI / Manage API/nova Managenova Computenova Computenova Computenova Computenova Computenova Compute glancenova Computenova Computenova Computenova Compute sftpconsoleconsole consolesftpconsoledhcpvnc RAID 10 local diskRAID 10 local disk mqAPI / Manage mqldapmysqlmqdbnova DB Storagekeystone DBStorage ISO storage (NFS) 12 13. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS KVM .com VPS VZ(Virtuozzo)IN/OUTFirewall>> Port80 port, 22 port(php...)>> >> Linux bridgemail gateway(SPAM)>> >> VPS KVMFirewallLinux bridge(ebtables) 13 14. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS KVM Flat DHCP + VLAN bridge(FirewallLinux bridge) GMONet() L3 SW(dhcp relay) L2 SW Rack L2 SW Linux bonding(act.-stan.) Linux VLAN Linux bridge VM VIF(tap - virtio NIC)14 15. OpenStack + KVM = .com VPS #2 vnc, snapshot.com VPS KVM Internet GMO core backbone L3 SWL3 SWL3 SWL2 SW L3 SWdhcp relay dhcp eth0 eth1 consolenova Computedhcpbond0bridge.VLAN1 libvirt network lter consoleldapbridge.VLAN2 ebtalbesbridge.VLAN3 tc htb (iproute)LDAPVMMACcollectdADDRESSIP eth0 VMeth0 eth0eth0VMVM VM 15 16. OpenStack + KVM = .com VPS #2 vnc, snapshotOpenStack griddynamics.net Diablo CentOS6 CentOS 6.xpythonpython 2.6back port libvirtCentOS http://yum.griddynamics.net/yum/diablo-centos/ => () src.rpm github.spec stable CentOS 6.3OSlibvirt diablo-centos (EPEL(6) OpenStack)16 17. OpenStack + KVM = .com VPS #2 vnc, snapshotOpenStack griddynamics.net Diablo CentOS6 shut off VPS VM != Cloud VM TerminateACPI shutdown noVNC nginx websocket proxy https(active-active) VNIC (>>> noVNCEssex(python)>> noVNC (javascript) noVNC (html5 Canvas + WebSocketvnc(rfb))OpenStackauthhttp://www.moongift.jp/2011/02/20110219-2/https://github.com/kanaka/noVNChttp://novnc.com/python-nova-*.rpm /usr/lib/python2.6/site-packages/nova/vnc/... Essex (EssexnoVNCxvp)18 19. OpenStack + KVM = .com VPS #2 vnc, snapshotOpenStack: html5 vnc (1)OpenStack dashboardvncnoVNC>> Top>>ajaxAPIw19 20. OpenStack + KVM = .com VPS #2 vnc, snapshothtml5 vnc (2)noVNCwebsocketCanvasweb browser(IE8Chrome Frame) 20 21. / DB OpenStack + KVM = .com VPS #2 vnc, snapshotAPI / Manage API/nova Manag html5 vnc (3) g sftpconsoleconsole consolesftpconsoledhcpvnckmq API / Managemq ldap mysql mqdb nova DBekeystone DBgee21 22. OpenStack + KVM = .com VPS #2 vnc, snapshothtml5 vnc (3): nginxwebsocketreverse proxy + dnsnginx websocket reverse proxy patch(nginx 1.3)https://github.com/yaoweibin/nginx_tcp_proxy_modulePort 6080vncproxyPort 80/443[n-gohko@vnc1001 ~]$ ps axu | grep nova | grep -v greproot 15509 0.4 2.0 451048 81164 ? S Jul11 152:13 /usr/bin/python /usr/bin/nova-vncproxy --flagfile=/etc/nova/nova.conf --logfile=/var/log/nova/nova-vncproxy.log --pidfile=/var/run/nova/nova-vncproxy.pid[n-gohko@vnc1001 ~]$ ps axu | grep nginx | grep -v greproot 1303 0.0 0.0 93188 1492 ? Ss Jun26 0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.confnginx 1304 0.1 0.0 94100 3472 ? S Jun26 54:44 nginx: worker process 22 23. OpenStack + KVM = .com VPS #2 vnc, snapshothtml5 vnc (3): nginx websocket reverse proxytcp {proxy_read_timeout 6000;proxy_send_timeout 6000;upstream websockets { server 172.20.113.31:6080;#check interval=3000 rise=2 fall=5 timeout=1000;check_http_send "GET / HTTP/1.0rnrn";}server { #listen 6081; server_name _; listen 443;access_log /var/log/nginx/access.ssl.log;ssl on;ssl_certificate /etc/nginx/ssl/ast.myvps.jp/ast.myvps.jp.pem;ssl_certificate_key /etc/nginx/ssl/ast.myvps.jp/ast.myvps.jp.key;ssl_protocolsSSLv3 TLSv1;ssl_ciphers HIGH:!ADH:!MD5;tcp_nodelay on;proxy_pass websockets;}}23 24. OpenStack + KVM = .com VPS #2 vnc, snapshothtml5 serial console: anyterm + conservernova-console(ajax-term)anyterm(OpenStack Diabloajax-term)http://anyterm.org/anytermweb (anyterm --> console)(OpenStack Essexajax-term)Pointpop-upURL [Enter `^Ec? for help]iu1-000007ff 24 25. OpenStack + KVM = .com VPS #2 vnc, snapshothtml5 serial console: anyterm token https://console1001.myvps.jp/anyterm/proxy/11048/ anyterm.html?token=bb268280-8e4e-41c1-894f- ac325079530f&title=iu1-000007ff nova-consolehttpd apache reverse proxy (Port 80/443)[root@console1001 ~]# ps -aef | grep httpd | grep -v greproot 1523 1 0 Jul09 ? 00:00:38 /usr/sbin/httpdapache 3385 1523 0 Jul29 ?00:00:04 /usr/sbin/httpdapache 3386 1523 0 Jul29 ?00:00:04 /usr/sbin/httpdapache 3387 1523 0 Jul29 ?00:00:04 /usr/sbin/httpdapache 23084 1523 0 Jul31 ?00:00:03 /usr/sbin/httpdapache 26971 1523 0 Aug01 ? 00:00:02 /usr/sbin/httpd[root@console1001 ~]# netstat -antp | grep pythontcp0 0 172.20.113.36:33841 172.20.113.54:3306 ESTABLISHED 2712/pythontcp0 0 172.20.113.36:44081 172.20.113.32:5672 ESTABLISHED 2712/pythontcp0 0 172.20.113.36:44084 172.20.113.32:5672 ESTABLISHED 2712/python 25 26. OpenStack + KVM = .com VPS #2 vnc, snapshotssh serial console: ldap ssh + conserverssh serial consolessh loginshellconsolesshvmanytermssh serial console [Enter `^Ec? for help]conservervirsh console 26 27. OpenStack + KVM = .com VPS #2 vnc, snapshot1) vmvgalibvirtdenekvmVideoOpenStack cirrusvmvgavmware) debian 6.0.6kernel...VMvirsh dene .xml - + + 27 28. OpenStack + KVM = .com VPS #2 vnc, snapshot2) us keymap libvirtdenekvmVNCkeymap ja (jis) US en-us keymap 28 29. OpenStack + KVM = .com VPS #2 vnc, snapshot3) snapshotvm disk image*1) *2) revert disk(applie)*3) convertdisk()1VPS!!OOSSUUbbuunnttuuddeesskkttooppBBlluueeOOnnyyxx55110088RRSSmmaarrttOOSS!!!!29 30. OpenStack + KVM = .com VPS #2 vnc, snapshot3) snapshot ; snapshot create*1) # qemu-img snapshot -c disk.img OOppeennSSttaacckk vviirrsshhssnnaappsshhoott 30 31. OpenStack + KVM = .com VPS #2 vnc, snapshot3) snapshot ; snapshot create31 32. OpenStack + KVM = .com VPS #2 vnc, snapshot3) snapshot ; snapshot revert disk*2) # qemu-img snapshot -a disk.imgsimple !32 33. OpenStack + KVM = .com VPS #2 vnc, snapshot3) snapshot ; snapshot revert disk 33 34. OpenStack + KVM = .com VPS #2 vnc, snapshot3) snapshot ; convert*3) disk image# qemu-img convert -f qcow2 -O qcow2 disk.img(old) disk.img(new)disk!! >> compute nodeDiabloVPSnova-clientAPIVNC, API1) VNC keymap en-us 2) VNC vmvga3) 50 51. OpenStack + KVM = .com VPS #2 vnc, snapshot(2)snapshotIP(Floting IP)IPv6>> >> NICIP Alias>> IPv6webwebcong>> injection>> cloud-init51 52. OpenStack + KVM = .com VPS #2 vnc, snapshot60(1GB memory)GMO K-OF 2012 52 53. OpenStack + KVM = .com VPS #2 vnc, snapshotSpecial Thanks!GMO Internet Inc., System Div., SI Team and Cloud Team,Hostingh Team53 54. OpenStack + KVM = .com VPS #2 vnc, snapshot 54 55. OpenStack + KVM = .com VPS #2 vnc, snapshotTGS 2012 Honda Fit55 56. OpenStack + KVM = .com VPS #2 vnc, snapshot TGS 2012 PixiveGMOw 56