5. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
◎お名前.com VPS KVM だいたいのシステム構成
コンパネ系web (.Net + IIS) Windows Server
商材DB (mysql) 課金とか
管理系サーバ (Linux KVMインスタンス)
websocket-VNCクラスタ(noVNC)
ssh/consoleサーバ
sftpサーバ
rabbitmqサーバ
dhcpサーバ
ldapサーバ(dhcp, ssh)
nova/keystone DB(mysql)サーバ
nova Manage/APIサーバ
ISO upload storage (GlusterFS, NFS)
Linux KVM (nova Compute) CentOS 6.x
nova Compute, collectd, kvm
5
12年9月4日火曜日
6. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
お名前.com VPS KVM ネットワーク
Internet
コンパネ系
L3 SW
L3 SW
API / Manage
コンパネweb (.Net)
サービス系 API / Manage
mysql
db
API
会員/課金 DB
API / Manage
API/nova Manage
nova Compute nova Compute
nova Compute nova Compute 管理系
nova Compute nova Compute glance
nova Compute nova Compute
nova Compute nova Compute
sftp console console console
sftp console dhcp vnc
RAID 10 local disk RAID 10 local disk
mq API / Manage mq
ldap mysql mq
db
nova DB
Storage keystone DB
Storage
ISO storage
(NFS)
6
12年9月4日火曜日
15. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
shutoff(2)
+
+ # If the instance is already terminated, we're still happy
+ # Otherwise, destroy it
+ if virt_dom is not None:
+ try:
+ virt_dom.shutdown()
+ except libvirt.libvirtError as e:
+ is_okay = False
+ errcode = e.get_error_code()
+ if errcode == libvirt.VIR_ERR_OPERATION_INVALID:
+ # If the instance if already shut off, we get this:
+ # Code=55 Error=Requested operation is not valid:
+ # domain is not running
+ (state, _max_mem, _mem, _cpus, _t) = virt_dom.info()
+ if state == power_state.SHUTOFF:
+ is_okay = True
+
+ if not is_okay:
+ LOG.warning(_("Error from libvirt during shutdown of "
+ "%(instance_name)s. Code=%(errcode)s "
+ "Error=%(e)s") %
+ locals())
+ raise
+
+
15
12年9月4日火曜日
16. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
shutoff(3)
+ """Called at an interval until the VM is gone."""
+ timeout_count = range(FLAGS.shutoff_retry_count)
+ while timeout_count: # Y.Kawada
+ try:
+ state = self.get_info(instance_name)['state']
+ except exception.NotFound:
+ msg = _("During shutoff, %s disappeared.") % instance_name
+ LOG.info(msg)
+ break
+ if state == power_state.SHUTOFF:
+ msg = _("Instance %s shutoff successfully. stat:%s") % (instance_name, state)
+ LOG.info(msg)
+ break
+
+ timeout_count.pop()
+ utils.my_logger('waiting... shutoff pw_state: %s' % state)
+ if len(timeout_count) == 0:
+ utils.my_logger("Error shutoff: %s time over, try to destroy." % instance_name)
+
+ """ try to destroy."""
+ msg = _("try destroy. :%s") % (instance_name)
+ LOG.info(msg)
+ self.destroy(instance, network_info, cleanup=False)
+ break
+ time.sleep(1)
+
+ return True
16
12年9月4日火曜日
24. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
Internet
お名前.com VPS : APIの経路
コンパネ系
L3 SW
L3 SW
API / Manage
コンパネweb (.Net)
API / Manage
mysql
db
API
会員/課金 DB
API / Manage
API/nova Manage
a Compute
ova Compute 管理系
nova Compute glance
nova Compute
nova Compute
sftp console console console
sftp console dhcp vnc
RAID 10 local disk
mq API / Manage mq
ldap mysql mq
db
nova DB 24
12年9月4日火曜日 Storage keystone DB
27. 会員/課金 DB
OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
API / Manage
API/nova Manag
html5 vnc (3)
管理系
g
sftp console console console
sftp console dhcp vnc
k
mq API / Manage mq
ldap mysql mq
db
nova DB
e keystone DB
ge
e
27
12年9月4日火曜日
42. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
DEMO: DNSを使ったname base冗長構成
DNSにsub domain とそのNSレコードを作る
Internet sub domain NSでは、それ
MacBook-Air:$ dig ns d.myvps.jp ぞれwwwを名乗らせる
;d.myvps.jp. IN NS
MacBook-Air:$ dig www.d.myvps.jp @d-ns01.myvps.jp
;; ANSWER SECTION: ;; QUESTION SECTION:
d.myvps.jp. 5 IN NS d-ns01.myvps.jp. ;www.d.myvps.jp. IN A
d.myvps.jp. 5 IN NS d-ns02.myvps.jp.
;; ANSWER SECTION:
www.d.myvps.jp. 5 IN A 157.7.129.212
;; ADDITIONAL SECTION:
d-ns01.myvps.jp. 86400 IN A 157.7.129.212 MacBook-Air:$ dig www.d.myvps.jp @d-ns02.myvps.jp
d-ns02.myvps.jp. 86400 IN A 157.7.129.213 ;; QUESTION SECTION:
;www.d.myvps.jp. IN A
DNS ;; ANSWER SECTION:
www.d.myvps.jp. 5 IN A 157.7.129.213
DNS + DNS + web server web server
L7(reverse proxy) L7(reverse proxy)
d-ns01. d-ns02. w01. w02.
157.7.129.212 157.7.129.213 157.7.129.214 157.7.129.215
reverse proxyでw01, w02
を追加
42
12年9月4日火曜日
47. OpenStack + KVM = お名前.com VPS 〜~開発担当者が語る、ここだけの裏裏話〜~
ご清聴ありがとうございました
Special Thanks!
GMO Internet Inc., System Div., SI Team and Cloud Team
途中まで準備していただいた Yamada san
47
12年9月4日火曜日