为什么租户看不到RDS实例虚拟机
在华为云上申请RDS实例,可以选择实例所在AZ、规格、存储大小,表明RDS实例数据库是运行在虚拟机上的。但实例申请成功后,租户并未看的虚拟机。那虚拟机去哪里了呢,用户又是怎么样通过云主机连上数据库的呢?这里跟大家简单介绍下。
无图无真相,首先上个图。
我们知道云服务都是多租户隔离的,每一个租户申请的云资源也都是相互隔离的,这点在RDS服务上也是一样。不同租户的申请的RDS实例虚拟机也是隔离开的,但是是通过一个叫做“资源租户”的内部租户隔离开的,这个租户对外部实际租户不可见,可以说是实际租户的影子,和最终租户是一一对应的关系。
“资源租户”本质上和实际租户没有什么不同,也可以创建VPC网络、创建虚拟机。当真正的租户提交了一个RDS实例申请后,RDS服务第一个动作就是找到跟这个租户关联的“资源租户”,然后使用“资源租户”完成虚拟机的创建,由于“资源租户”对实际租户不可见,那在资源租户中创建的虚拟机实际租户也就看不到了。就像上图中的租户A<->资源租户A,租户B<->资源租户B。
接下来问题又来了,既然虚拟机属于不同的租户,那为什么实际租户创建的云主机又能连上RDS实例数据库呢?
还是看上面的图。简单来说,RDS实例虚拟机有两个网卡,第一个网卡作为管理网络;用于和RDS服务管理面互通,第二个网卡是业务网卡,用于用户访问数据库。同样的,第一个网卡的端口来自“资源租户”的VPC网络和子网,对最终租户不可见,仅用于数据库的内部管理。第二块网卡的创建则是由用户指定的,大家还记得申请RDS时,界面上还需要我们选择RDS实例所在VPC和子网,这个VPC和子网就是用来创建第二块网卡的端口的,这个端口由于天然就是从租户自己的VPC和子网中创建的,自然和相同子网的云主机可以网络互通了。
当然,这里还有一个小技巧,就是第一块管理网卡和第二块业务网卡的网段不能重叠,否则就会导致路由错乱了。为达到这个目的,系统在选择第一块网卡的网络时,参考了用户选择的子网网段,特地选择了一个不冲突的网段作为管理网段。
好啦,到这里大家基本明白为什么RDS实例虚拟机看不到,但是又能通过云主机直接访问的原理了,希望能解答大家心中的小小疑惑。
- 点赞
- 收藏
- 关注作者
评论(0)