首页 文章 精选 留言 我的

精选列表

搜索[openstack],共3159篇文章
优秀的个人博客,低调大师

部署 instance 到 OVS flat network - 每天5分钟玩转 OpenStack(135)

上一节创建了 OVS flat network,今天我们部署 instance 并验证 flat 网络的连通性。 launch 新的 instance “cirros-vm1”,网络选择 falt_net。 cirros-vm1 分配到的 IP 为 172.16.1.3。 cirros-vm1 被 schedule 到控制节点,其虚拟网卡也连接到 br-int。 虚拟网卡与 br-int 的连接方式与 local 网络是一样的,不再赘述。 当前 flat_net 的结构如下: 继续用同样的方式 launch instance cirros-vm2,分配到的 IP 为 172.16.1.4。 cirros-vm2 被 schedule 到计算节点,虚拟网卡已经连接到 br-int。 因为计算节点上没有 hdcp 服务,所以没有相应的 tap 设备。 当前 flat_net 的结构如下: cirros-vm1(172.16.1.3) 与 cirros-vm2(172.16.1.4) 位于不同节点,通过 flat_net 相连,下面验证连通性。 在 cirros-vm2 控制台中 ping 172.16.1.3。 如我们预料,ping 成功。 flat 网络讨论完毕,下一节开始学习 OVS vlan network。

优秀的个人博客,低调大师

连接 insance 到 vlan101 - 每天5分钟玩转 OpenStack(97)

前面我们创建了 vlan101,今天继续部署 instance 到该 vlan network, 并讨论 instance 之间的连通性。 launch 新的 instance “cirros-vm3”,网络选择 vlan101。 cirros-vm3 分配到的 IP 为 172.16.101.103。 cirros-vm3 被 schedule 到计算节点,对应的 tap 设备为 tapadb5cc6a-7a,并且连接到 bridge。 当前网络结构如下: cirros-vm1 位于控制节点,属于 vlan100。 cirros-vm2 位于计算节点,属于 vlan100。 cirros-vm3 位于计算节点,属于 vlan101。 cirros-vm1 与 cirros-vm2 都在 vlan100,它们之间能通信。 cirros-vm3 在 vlan101,不能与 cirros-vm1 和 cirros-vm2 通信。 那怎么样才能让 vlan100 与 vlan101 中的 instance 通信呢?单靠二层 vlan 是不行的,还得在三层通过路由器转发。这便是下一章要详细讨论的内容:Routing。

优秀的个人博客,低调大师

CPU 和内存虚拟化原理 - 每天5分钟玩转 OpenStack(6)

前面我们成功地把 KVM 跑起来了,有了些感性认识,这个对于初学者非常重要。不过还不够,我们多少得了解一些 KVM 的实现机制,这对以后的工作会有帮助。 CPU 虚拟化 KVM 的虚拟化是需要 CPU 硬件支持的。还记得我们在前面的章节讲过用命令来查看 CPU 是否支持KVM虚拟化吗? root@ubuntu:~# egrep -o '(vmx|svm)' /proc/cpuinfo vmx 如果有输出 vmx 或者 svm,就说明当前的 CPU 支持 KVM。CPU 厂商 Intel 和 AMD 都支持虚拟化了,除非是非常老的 CPU。 一个 KVM 虚机在宿主机中其实是一个 qemu-kvm 进程,与其他 Linux 进程一样被调度。 比如在我的实验机上运行的虚机 kvm1 在宿主机中 ps 能看到相应的进程。 虚机中的每一个虚拟 vCPU 则对应 qemu-kvm 进程中的一个线程。看下图 在这个例子中,宿主机有两个物理 CPU,上面起了两个虚机 VM1 和 VM2。 VM1 有两个 vCPU,VM2 有 4 个 vCPU。可以看到 VM1 和 VM2 分别有两个和 4 个线程在两个物理 CPU 上调度。 这里也演示了另一个知识点,即虚机的 vCPU 总数可以超过物理 CPU 数量,这个叫 CPU overcommit(超配)。 KVM 允许 overcommit,这个特性使得虚机能够充分利用宿主机的 CPU 资源,但前提是在同一时刻,不是所有的虚机都满负荷运行。 当然,如果每个虚机都很忙,反而会影响整体性能,所以在使用 overcommit 的时候,需要对虚机的负载情况有所了解,需要测试。 内存虚拟化 KVM 通过内存虚拟化共享物理系统内存,动态分配给虚拟机。看下图 为了在一台机器上运行多个虚拟机,KVM 需要实现 VA(虚拟内存) -> PA(物理内存) -> MA(机器内存)直接的地址转换。虚机 OS 控制虚拟地址到客户内存物理地址的映射 (VA -> PA),但是虚机 OS 不能直接访问实际机器内存,因此 KVM 需要负责映射客户物理内存到实际机器内存 (PA -> MA)。具体的实现就不做过多介绍了,大家有兴趣可以查查资料。 还有一点提醒大家,内存也是可以 overcommit 的,即所有虚机的内存之和可以超过宿主机的物理内存。但使用时也需要充分测试,否则性能会受影响。 下一节我们讨论 KVM 如何实现存储虚拟化。

优秀的个人博客,低调大师

远程管理 KVM 虚机 - 每天5分钟玩转 OpenStack(5)

上一节我们通过 virt-manager 在本地主机上创建并管理 KVM 虚机。其实 virt-manager 也可以管理其他宿主机上的虚机。只需要简单的将宿主机添加进来 填入宿主机的相关信息,确定即可。 接下来,我们就可以像管理本地虚机一样去管理远程宿主机上的虚机了。 这里其实有一个要配置的地方。 因为 KVM(准确说是 Libvirt)默认不接受远程管理,需要按下面的内容配置被管理宿主机中的两个文件 /etc/default/libvirt-bin start_libvirtd="yes" libvirtd_opts="-d -l" /etc/libvirt/libvirtd.conf listen_tls = 0listen_tcp = 1unix_sock_group = "libvirtd"unix_sock_ro_perms = "0777"unix_sock_rw_perms = "0770"auth_unix_ro = "none"auth_unix_rw = "none"auth_tcp = "none" 然后重启 Libvirtd 服务就可以远程管理了。 service libvirt-bin restart 下节开始,我们将学习 KVM 是如何实现虚拟化的。

优秀的个人博客,低调大师

openstack 命令行管理十三 - 外部网络[外部连接专用]管理 (备忘)

 创建公网 [root@station140 ~(network_admin)]# neutron net-create --router:external=true pub1 Created a new network: +---------------------------+--------------------------------------+ | Field | Value | +---------------------------+--------------------------------------+ | admin_state_up | True | | id | aebe75f0-6013-4a5e-bbd9-cb81e1f017bc | | name | pub1 | | provider:network_type | local | | provider:physical_network | | | provider:segmentation_id | | | router:external | True | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | e3a71a59840c4e88b8740b789c3afb9c | +---------------------------+--------------------------------------+注: 参数 --router:external=true 表示创建的是公网网络 查询公网网络信息 [root@station140 ~(keystone_admin)]# nova network-list | grep pub1 +--------------------------------------+---------+------+ | ID | Label | Cidr | +--------------------------------------+---------+------+ | aebe75f0-6013-4a5e-bbd9-cb81e1f017bc | pub1 | None | +--------------------------------------+---------+------+ ############ 注意 ########## 把该 id (aebe75f0-6013-4a5e-bbd9-cb81e1f017bc)定义到 /etc/neutron/l3_agent.ini gateway_external_network_id = aebe75f0-6013-4a5e-bbd9-cb81e1f017bc handle_internal_only_routers = True external_network_id = aebe75f0-6013-4a5e-bbd9-cb81e1f017bc external_network_bridge = br-ex 重启服务 /etc/init.d/neutron-l3-agent restart 注: 上述问题可解决 内部网络 中 ROUTE 显示为 DOWN 状态 ############ 注意 ########## 创建子网 neutron subnet-create --name terry_pub_net1 --allocation-pool start=192.168.48.142,end=192.168.48.148 --gateway 192.168.48.1 --dns-nameserver 192.168.86.37 --enable_dhcp=False --ip-version 4 pub1 192.168.48.0/24 Created a new subnet: +------------------+------------------------------------------------------+ | Field | Value | +------------------+------------------------------------------------------+ | allocation_pools | {"start": "192.168.48.142", "end": "192.168.48.148"} | | cidr | 192.168.48.0/24 | | dns_nameservers | 192.168.86.37 | | enable_dhcp | False | | gateway_ip | 192.168.48.1 | | host_routes | | | id | 59cc431b-498e-49a0-bc60-4a8ca1ca6f48 | | ip_version | 4 | | name | terry_pub_net1 | | network_id | aebe75f0-6013-4a5e-bbd9-cb81e1f017bc | | tenant_id | e3a71a59840c4e88b8740b789c3afb9c | +------------------+------------------------------------------------------+ 删除网络方法 neutron net-delete pub1 查询外部网络 [root@station140 ~(network_admin)]# nova floating-ip-pool-list +--------+ | name | +--------+ | public | | pub1 | <- 注: 假如 neutron net-create 不带 --router:external=true 参数, 则代表网络为内部网络 +--------+

优秀的个人博客,低调大师

openstack 之 KVM虚拟机加入物理机网络的方法(可用于应急)

这个文档是在刚刚在生产环境部署完成的时候,由于管理节点和网络节点在同一台物理机上,并且是单节点,另外,没有使用共享存储,存在单点故障,因此,需要考虑管理节点物理机宕机的情况下,如何迅速保障计算节点上虚拟机正常运行的问题。 主要思路是利用计算节点上kvm自带的虚拟机管理工具virsh,直接在虚拟机上增加一块虚拟网卡,并且将这块虚拟网卡桥接到计算节点的br-ex网桥上,注意,br-ex网桥必须是直接连接到业务网络的,如果名称不一样,请按照实际情况进行修改,必须是接入能够连接到业务网络的虚拟网桥上。接入到业务网络的网桥后,再通过vnc接入到虚拟机,修改新增网卡的IP地址为业务网络的IP地址。好了,接下来就让我们开始动手,以下的命令都是在root账号下执行的: 首先,需要具备接入虚拟机的条件,即需要能够远程桌面,安装vnc和xauth: 1 yum install -ytigervncxauth 使用virsh工具软件增加一块网卡,直接连接到br-ex 执行下面的命令: 1 virsheditinstance-00000002 其中instance-00000002 是需要处理的虚拟机名称。 virsh的命令使用可以直接使用virsh -h查看帮助。 增加一块网卡。为了便于查看,在现有<interface>... </interface>的位置下面增加下面的配置: 1 2 3 4 5 < interface type = 'bridge' > < source bridge = 'br-ex' /> < virtualport type = 'openvswitch' > </ virtualport > </ interface > (具体xml格式可以参考:http://libvirt.org/formatdomain.html#elementsNICSVirtual) 关闭虚拟机电源: virsh destroy instance-00000002 启动虚拟机: virsh start instance-00000002 使用virsh和vnc连接虚拟机: virsh vncdisplay instance-00000002 :0 vncviewer :0 进入虚拟机,将第二块网卡的地址改为业务地址 至此,应急处理操作就这样完成了。如果控制节点恢复了,后面需要还原配置,按照下面的方法进行恢复: 虚拟机恢复: 将虚拟机内部网络设置复原,具体参考上面vnc接入虚拟机的方法进行操作。 执行下面的命令修改配置: 1 virsheditinstance-00000002 将上面文档中临时增加的interface部分去掉。 最后,通过管理界面启动虚拟机,或者通过上面的virsh工具重启。 本文转自yuweibing51CTO博客,原文链接:http://blog.51cto.com/yuweibing/1656459,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册