什么是新媒体,它的应用领域主要是?
更新时间:2022-05-30 18:05
最满意答案
UStack 为所有用户提供可靠、安全的云服务,但是如果用户希望在其上实现更加高可用的虚拟机来保证一些关键业务,在 UStack 上也同样可以方便快捷的完成。 @陈沙克 在他的博客里曾讲述了如何在 UStack 上通过 API 使用 Allowed address pairs,这里我们将同样通过 Allowed address pairs 来实现 VRRP 完成虚拟机的高可用。 VRRP 全称虚拟路由器冗余协议,通过 VRRP 我们可以将一些虚拟机配成一个备份组,然后指定一个 master 节点,当 master 节点失效时,备份组将会根据 VRRP 协议进行选举,选举后一个 slave 节点将代替原失效的 master 节点对外提供服务,在提高可靠性的同时,简化了主机的配置,避免了单点故障,是常见的高可用方案。 实现 VRRP 协议,我们可以使用开源的 keepalived 软件,优点是配置简单,功能也颇为强大,下面我就以 keepalived 来实现一个简单的双机热备对外提供 HTTP 服务。 在 UStack 上建立环境 创建虚拟网络与云主机 首先我们建立一个 VRRP 用的网络和子网,且将其命名为 vrrp-net 和 vrrp-subnet(10.10.0.0/24),然后在上面建立两个虚拟机,我将其命名为 vrrp-node-1(10.10.0.4)和 vrrp-node-2(10.10.0.5)。 两个节点都没有分配浮动 IP,只是将其通过一个 router 连接到外网,为了能够 ssh 登录到这两个虚拟机,我们可以在路由器上设置转发规则,指向各自的 22 端口,方便我们管理。 创建公网IP和虚拟网卡 然后我们需要申请一个公网 IP 作为这两个虚拟机对外服务的出口 IP,当然,如果你的虚拟机不需要对外提供服务的话就不必申请公网 IP 了。 再在 vrrp-subnet 上新建一个虚拟网卡,只需要进入左侧边栏”虚拟数据中心”的“虚拟网卡”,再点击“新建虚拟网卡”,在“选择子网”里选择 vrrp-subnet,我们可以在这里指定一个 IP,比如 10.10.0.200,再指定一个名字,比如 vrrp-port。 通过 API 实现高级控制 下面我们需要将前面申请的公网 IP 关联到这个虚拟网卡上,这个操作我们目前不支持在界面上操作,需要用 API 完成,首先我们做一些准备工作。 准备工作 1. 记录 Floating IP 的 UUID、两个虚拟机上的虚拟网卡的 UUID 和 vrrp-port 的 UUID:Floating IP 的 UUID 可以在”公网 IP“页点开具体的 IP 即可看到,虚拟网卡的 UUID 则是在“虚拟数据中心”的“虚拟网卡”页里,通过“关联云主机”这一栏去查这个虚拟网卡属于哪个云主机,然后点击这个虚拟网卡,记录其 UUID。 2. 记录你的 User ID 和 Project ID:在 UOS 的 API中,每个用户都用其 User ID 和 Project ID 来做识别和资源的隔离,这两个 ID 可以将鼠标悬停在右上角后点击“个人设置”查看。 获得 Token 下面就可以进入 API 的操作了,首先获取一个 token: curl -i -X POST https://identity.api.ustack.com/v3/auth/tokens \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"auth": {"scope": {"project": {"id": "{PROJECT_ID}"}}, "identity": {"password": {"user":{ "password": "{PASSWORD}", "id": "{USER_ID}"}}, "methods": ["password"]}}}' 复制代码 注意将里面的 {PROJECT_ID}、{PASSWORD}、{USER_ID} 替换成你自己的真实信息,下面的命令也做类似处理。 在终端运行后,我们可以获得一个 token: 图中第一个红框部分为我们输入的代码,第二个红框部分为我们获得的 Token,接下来每一步都需要用到这个 Token,请记住这个 Token。 将公网 IP 绑定到虚拟网卡 首先我们将前边的 Floating IP 绑定到 vrrp-port 上: curl -s -X PUT https://bj1.network.api.ustack.com/v2.0/floatingips/{FLOATING_IP_UUID} \ -H "X-Auth-Token: {TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"floatingip": {"port_id": "{VRRP-PORT-UUID}"}}' 复制代码 将其中的 {FLOATING_IP_UUID}、{TOKEN}、{VRRP-PORT-UUID} 换成我们前面查的真实的 UUID。 第一个红框内为运行的 curl 命令,第二个红框内可以看到“Fixed IP”已经成功变成 vrrp-port 的 IP 了。或者进入Ustack控制台 ,此时应能看到本来 “Available” 的公网 IP 此时已变成了 “In Use” 添加 Allowed address pairs 然后我们再添加 Allowed address pairs: curl -s -X PUT https://bj1.network.api.ustack.com/v2.0/ports/{NODE-1-PORT-UUID} \ -H "X-Auth-Token: {TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"port": {"allowed_address_pairs": [{"ip_address": "{VRRP-FLOATING-IP}"}]}}' 复制代码 将其中的 {NODE-1-PORT-UUID}、{TOKEN}、{VRRP-FLOATING-IP} 换成我们前面查的真实的 UUID。改完 Node-1 后同样处理 Node-2 即可。 第一个红框内为运行的 curl 命令,第二个红框内可以看到“allowed address pairs”已经成功变成了 vrrp-port 的 IP 了。 至此,UOS 上的准备就完成了,下面我们 ssh 到虚拟机去配置 keepalived。 配置虚拟机 配置 keepalived keepalived 的配置可以做很多,他可以用来做3层及以上的高可用(TCP Check、HTTP Get、SSL Get、MISC Check), 参考 Keepalived 的 User Guide,里面详细介绍了 Keepalived 的使用方法。这里我们不做详细的 Health check,仅保证虚拟机连接正常,即当虚拟机网络断开时将流量切换到其他虚拟机。 首先在节点中安装 keepalived: sudo apt-get install keepalive 复制代码 然后是 Master 节点的设置: $ cat /etc/keepalived/keepalived.conf vrrp_instance vrrp_group_1 { state MASTER interface eth0 virtual_router_id 1 priority 100 authentication { auth_type PASS auth_pass password } virtual_ipaddress { 10.10.0.200/24 brd 10.0.0.255 dev eth0 } } 复制代码 Slave 节点的设置: $ cat /etc/keepalived/keepalived.conf vrrp_instance vrrp_group_1 { state BACKUP interface eth0 virtual_router_id 1 priority 50 authentication { auth_type PASS auth_pass password } virtual_ipaddress { 10.10.0.200/24 brd 10.0.0.255 dev eth0 } 复制代码 修改完配置后需要重启 keepalived: service keepalived restart 复制代码 配置 Apache 为了演示高可用,我们需要安装一个 Web 服务器,比如 Apache: sudo apt-get install apache2 复制代码 分别将两个虚拟机的主页设置成 “VRRP-node1″ 和 “VRRP-node2″: $ sudo echo "VRRP-node1" > /var/www/index.html $ sudo echo "VRRP-node2" > /var/www/index.html 复制代码 验证高可用 此时我们尝试访问 42.62.73.143: $ curl 42.62.73.143 VRRP-node1 复制代码 现在我们让 VRRP-node1 的“虚拟网卡”转为关闭状态,这个可以通过设置虚拟网卡的 admin_state_up 来实现: curl -s -X PUT https://bj1.network.api.ustack.com/v2.0/ports/{NODE-1-PORT-UUID} \ -H "X-Auth-Token: {TOKEN}" \ -H "Content-Type: application/json" \ -H "Accept: application/json" \ -d '{"port": {"admin_stat_up": [{"ip_address": "false"}]}}' 复制代码 再尝试访问 42.62.73.143: $ curl 42.62.73.143 VRRP-node2 复制代码 此时 respone 已由 VRRP-node2 来发出了。
相关问答
更多-
如何在虚拟机安装Linux系统[2023-09-27]
和安装window一样的,不过就是过程不同。你要装的是Linux哪个版本啊?redhat?fedora ?我会的话,叫你 -
linux 建立网站 虚拟机[2024-03-16]
配置的要求不是很高,关键看做什么用的,一般的家用电脑也能搭建起来,当然这只是针对学习或研究用的,这种家用电脑搭建起来的话做大型网站服务器是不行的,而且带宽也不够的。Linux的发行版本很多,如:Fedora、Ubuntu、OpenSUSE、Centos、Debian等等,如果你要选择自己学习或者什么的选择Centos还是不错的,因为现在很多IDC提供商也在用,相对Fedora来说没那么好,但是Centos是免费的,而Fedora是付费的。当然也可以选择其他的发行版搭建,根据自己的喜好来,我个人曾经就用Cen ... -
如何在虚拟机里的linux下实现上网?[2022-02-06]
报告: vmware虚拟机里linux联网与虚拟机设置没关系 本人亲自测试雨林木风 ubuntu 小红帽 3个linux 都可以上网 下图为设置方法 【不看最下面的CCC虚拟系统设置方法】 注明:我系统在官网下OK -
虚拟机中安装Linux系统[2022-03-19]
最好重新下载只有一个ISO镜像的操作系统吧 点击 文件-新建-虚拟机 然后 点下一步(选典型) 再点 下一步(看你要安装的操作系统是什么就选什么) 点下一步 再点下一步(选NAT 第二个) 点下一步(磁盘8G就行了 你要是想分盘的话就点分盘 不分盘的话安装好了的系统就只有一个盘了) 完成 然后点击一下刚才新建好的虚拟机 在设备里找到 CD-ROM 然后双击 点使用ISO镜像 把你下载好的ISO镜像的路径弄上去 点确定 之后就启动这个虚拟机 然后就会像真机一样正常安装系统了 -
如何在linux虚拟机下安装QQ[2022-03-20]
QQ.tar.gz的软件包放在哪无所谓.因为在windows中看不到linux分区.但在linux中能看到windows分区. 比如你把它放到c盘.你就在linux中找到c盘中的qq包.(但是看不到磁盘盘符,哪个盘符有program files,哪个就是c盘) tar zxvf /.../.../.. cd /root/qq.tar.gz/ ./configure --prefix=/usr/local/qq/ make make install (具体请看readme或install) 我不太清楚你为什么 ... -
如何在虚拟机Linux下配置DHCP服务器[2022-01-17]
1、先挂载光盘 #mount /dev/cdrom /media 2、然后安装DHCP服务器安装包 #rpm -ivh /media/Server/dhcp-3.0.5-3.el5.i386.rpm 3、复制dhcp服务器配置示例文件到/etc下并改名为dhcpd.conf #cd /usr/share/doc/dhcp-3.0.5/ #cp dhcpd.conf.sample /etc/dhcpd.conf这一步会有一个是否覆盖,写y就行了 4、修改dhcp服务器的配置文件:#vim /etc/dhcpd ... -
如何在 UStack 上实现虚拟机高可用[2023-10-25]
UStack 为所有用户提供可靠、安全的云服务,但是如果用户希望在其上实现更加高可用的虚拟机来保证一些关键业务,在 UStack 上也同样可以方便快捷的完成。 @陈沙克 在他的博客里曾讲述了如何在 UStack 上通过 API 使用 Allowed address pairs,这里我们将同样通过 Allowed address pairs 来实现 VRRP 完成虚拟机的高可用。 VRRP 全称虚拟路由器冗余协议,通过 VRRP 我们可以将一些虚拟机配成一个备份组,然后指定一个 master 节点,当 mas ... -
如何在安卓手机上安装虚拟机?[2022-06-12]
一般有3个虚拟机软件,limbo bochs apq.需下载镜像 -
怎样连接虚拟机中的oracle[2023-03-16]
虚拟机有ip地址的啊。在url中打上就行啦 -
在使用未翻译的Java堆栈帧的示例中,您似乎正在使用ustack()操作。 为了获得翻译帧,我相信你应该使用jstack()动作。 In your example with untranslated Java stack frames, you appear to be using the ustack() action. In order to get translated frames, I believe you ought to be using the jstack() action instea ...