首页 文章 精选 留言 我的

精选列表

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

openstack 命令行管理十五 - 浮动 IP 管理 (备忘)

帮助 [root@station140 ~(keystone_admin)]# nova help | grep float add-floating-ip Add a floating IP address to a server. floating-ip-bulk-create Bulk create floating ips by range. floating-ip-bulk-delete Bulk delete floating ips by range. floating-ip-bulk-list List all floating ips. floating-ip-create Allocate a floating IP for the current tenant. floating-ip-delete De-allocate a floating IP. floating-ip-list List floating ips for this tenant. floating-ip-pool-list List all floating ip pools. remove-floating-ip Remove a floating IP address from a server. 生成 浮动 IP [root@station140 ~(keystone_admin)]# nova floating-ip-create pub1 +----------------+-------------+----------+------+ | Ip | Instance Id | Fixed Ip | Pool | +----------------+-------------+----------+------+ | 192.168.48.143 | None | None | pub1 | +----------------+-------------+----------+------+ 分配 [root@station140 ~(network_admin)]# nova add-floating-ip terry_instance1 192.168.48.143 查询浮动 IP 分配情况 [root@station140 ~(keystone_admin)]# nova floating-ip-list +----------------+--------------------------------------+-----------+------+ | Ip | Instance Id | Fixed Ip | Pool | +----------------+--------------------------------------+-----------+------+ | 192.168.48.143 | 93d0c9c1-b38b-4fe3-9ae3-400f43276f60 | 10.0.0.50 | pub1 | +----------------+--------------------------------------+-----------+------+ 移除浮动 IP [root@station140 ~(keystone_admin)]# nova floating-ip-delete 192.168.48.143 

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

openstack 命令行管理四 - 资源管理 (备忘)

 配额用于对每个 tenants 进行限制, 如浮动 IP, 内存, CPU, 磁盘, 密钥, 安全规则, 云硬盘等 资源管理帮助 [root@station140 ~(keystone_admin)]# nova help | grep quota quota-class-show List the quotas for a quota class. quota-class-update Update the quotas for a quota class. quota-defaults List the default quotas for a tenant. quota-delete Delete quota for a tenant/user so their quota will quota-show List the quotas for a tenant/user. quota-update Update the quotas for a tenant/user. 可管理资源 fixed-ips 每个 project 可用固定 IP 地址, 必须大于等于实例可用的 IP 地址数量 floating-ips 每个 project 可用的浮动 IP 地址 injected-file-content-bytes 添加的文件最大可包含多少 bytes injected-file-path-bytes 指定的文件目录下最大可包含的文件 bytes injected-files 每个 project 可以包含的文件数量 instances 每个 project 可包含的最多的 instances 数量 key-pairs 每个用户可用的 key-pairs 的数量 metadata-items 每个实例可拥有的 metadata-items 数量 ram 允许每个 project 中的 instances 可用的 ram (MB) 数量 security-group-rules 可用的安全组规则 security-groups 每个 project 的安全组 cores 每个 project 可用的虚拟 CPU 个数 显示 [root@station140 ~(keystone_admin)]# nova quota-defaults +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 10 | | cores | 20 | | ram | 51200 | | floating_ips | 10 | | fixed_ips | -1 | | metadata_items | 128 | | injected_files | 5 | | injected_file_content_bytes | 10240 | | injected_file_path_bytes | 255 | | key_pairs | 100 | | security_groups | 10 | | security_group_rules | 20 | +-----------------------------+-------+ 更新方法 [root@station140 ~(keystone_admin)]# nova quota-class-update --instances 20 default [root@station140 ~(keystone_admin)]# nova quota-defaults +-----------------------------+-------+ | Quota | Limit | +-----------------------------+-------+ | instances | 20 | 建议直接通过 horizon 对每个租户进行配额限制, 方便简单, 准确 通过数据库方法对 quota 进行查询会更加准确 表一, 用于查询 内核, 实例, 内存, 安全组资源 mysql> select a.name, b.resource, b.hard_limit from keystone.project a, nova.quotas b where a.enabled=1 and b.deleted=0 and a.id=b.project_id and a.name='admin'; +-------+-----------------------------+------------+ | name | resource | hard_limit | +-------+-----------------------------+------------+ | admin | cores | 500 | | admin | injected_files | 50 | | admin | injected_file_content_bytes | 10240 | | admin | instances | 200 | | admin | metadata_items | 128 | | admin | ram | 1024000 | | admin | security_groups | 10 | | admin | security_group_rules | 20 | +-------+-----------------------------+------------+ 8 rows in set (0.00 sec) 表二, 用于查询云盘大小, 云盘快照, 云盘数量配额 mysql> select a.name, b.resource, b.hard_limit from keystone.project a, cinder.quotas b where a.enabled=1 and b.deleted=0 and a.id=b.project_id and a.name='admin'; +-------+-----------+------------+ | name | resource | hard_limit | +-------+-----------+------------+ | admin | gigabytes | 10000 | | admin | snapshots | 10 | | admin | volumes | 100 | +-------+-----------+------------+ 3 rows in set (0.00 sec) 表三, 用于查询对路由, 网络安全策略, 浮动IP, IP 地址的配额限制 mysql> select a.name, b.resource, b.limit from keystone.project a, neutron.quotas b where a.enabled=1 and a.id=b.tenant_id and a.name='QA'; +------+---------------------+-------+ | name | resource | limit | +------+---------------------+-------+ | QA | router | 1000 | | QA | security_group_rule | 10000 | | QA | subnet | 1000 | | QA | network | 1000 | | QA | security_group | 1000 | | QA | floatingip | 5000 | | QA | port | 8172 | +------+---------------------+-------+ 7 rows in set (0.00 sec)

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

Openstack 实战讲解之-----------02-控制节点kvm虚拟化配置

KVM虚拟化的特性 嵌入到linux正式kernel(提高了兼容性) 代码级资源调用(提高性能) 虚拟机就是一个进程(内存易于管理) 直接支持NUMA技术(提高扩展性) 虽然被RedHat收购了,但是依然保持开源发展模式,社区活跃 更好的商业支持及服务保障 CentOS7较CentOS6默认支持cpu热添加,内存热添加,大页内存默认都是开启的。 支持虚拟化的条件 Inter的cpu简称为:VMX AMD的cpu简称为:SVM VMware需要开启如下两个条件即可,如果是物理机,需要在bios里面设置,默认都是开启的。 通过下面的命令查看虚拟化信息: grep-E"svm|vmx"/proc/cpuinfo flags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsmmxfxsrssesse2sssyscallnxrdtscplmconstant_tscarch_perfmonpebsbtsnoplxtopologytsc_reliablenonstop_tscaperfmperfeagerfpupnipclmulqdqvmxssse3cx16pcidsse4_1sse4_2x2apicpopcntaesxsaveavxf16crdrandhypervisorlahf_lmidaaratepbplnptsdthermtpr_shadowvnmieptvpidfsgsbasesmepxsaveopt flags:fpuvmedepsetscmsrpaemcecx8apicsepmtrrpgemcacmovpatpse36clflushdtsmmxfxsrssesse2sshtsyscallnxrdtscplmconstant_tscarch_perfmonpebsbtsnoplxtopologytsc_reliablenonstop_tscaperfmperfpnipclmulqdqvmxssse3cx16pcidsse4_1sse4_2x2apicpopcnttsc_deadline_timerxsavea*vxhypervisorlahf_lmaratepbplnptsdthermtpr_shadowvnmieptvpidtsc_adjust KVM的安装实战 安装管理工具和virt命令 1 yum install -yqemu-kvmlibvirtvirt- install 1 2 3 Kvm:linux内核的一个模块,模块不需要安装,只需要加载 Qemu:虚拟化软件,可以虚拟不同的cpu,支持异构(x86架构可虚拟化出不是x86的架构) Qemu-kvm:用户态管理kvm,网卡,声卡,PCI设备等都是qemu来管理的 创建虚拟磁盘 1 2 qemu-imgcreate-fraw /opt/Centos7_x86_64 .raw10G Formatting '/opt/Centos7_x86_64.raw' , fmt =rawsize=10737418240 创建qcow2格式的虚拟磁盘 1 2 qemu-imgcreate-fqcow2 /opt/Centos7_x86_64 .qcow210G Formatting '/opt/Centos7_x86_64.qcow2' , fmt =qcow2size=10737418240encryption=offcluster_size=65536lazy_refcounts=offrefcount_bits=16 转换虚拟磁盘格式: 1 qemu-imgconvert-c-fraw-Oqcow2CentOS-7-x86_64.rawCentOS-7-x86_64.qcow2 qcow2和raw的区别: 1.raw创建多大占用多大磁盘空间 2.qcow2占用磁盘大小根据使用量来决定 -> 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@linux-node1~] #qemu-imginfo/opt/Centos7_x86_64.raw image: /opt/Centos7_x86_64 .raw file format :raw virtualsize:10G(10737418240bytes) disksize:0 [root@linux-node1~] #qemu-imginfo/opt/Centos7_x86_64.qcow2 image: /opt/Centos7_x86_64 .qcow2 file format :qcow2 virtualsize:10G(10737418240bytes) disksize:196K cluster_size:65536 Formatspecificinformation: compat:1.1 lazyrefcounts: false refcountbits:16 corrupt: false 显示内核中kvm的状态: 1 2 3 [root@linux-node1~] #lsmod|grepkvm kvm_intel1621530 kvm5252591kvm_intel 启动管理工具服务: 1 2 3 [root@linux-node1~] #systemctlenablelibvirtd [root@linux-node1~] #systemctlstartlibvirtd [root@linux-node1~] #systemctlstatuslibvirtd 上传镜像到node1机器中 1 2 3 4 5 6 7 8 9 10 11 12 13 [root@linux-node1~] #cd/opt/ [root@linux-node1opt] # wgethttp: //mirrors .aliyun.com /centos/7 .2.1511 /isos/x86_64/CentOS-7-x86_64-DVD-1511 .iso 法二: 利用CRT的SFTP上传 CRT==>File==>ConnectSFTPSession(英文版CRT) CRT==>文件==>连接到SFTP(中文版CRT) sftp > cd /opt sftp >putD: /ISO/CentOS-7-x86_64-DVD-1511 .iso #将镜像上传到/opt下 法三: [root@linux-node1~] #cd/opt/ [root@linux-node1opt] #ddif=/dev/cdromof=/opt/CentOS-7.1-x86_64.iso 创建虚拟机: 1 virt- install --virt- type kvm--nameCentos7.2_mini_x64-- ram 1024--cdrom= /tmp/CentOS-7-x86_64-Minimal-1611 .iso--diskpath= /opt/Centos7_x86_64 .qcow2--networknetwork=default--graphicsvnc,listen=0.0.0.0--noautoconsole 创建完毕的检查命令: 1 2 3 4 [root@linux-node1tmp] #virshlist--all IdNameState ---------------------------------------------------- 1Centos7.2_mini_x64running 虚拟机基本操作 生成kvm虚拟机:virt-install 查看再运行的虚拟机:virsh list 查看kvm虚拟机配置文件:virsh dumpxml name 启动kvm虚拟机:virsh start name 正常关机:virsh shutdown name 非正常关机:virsh destroy name 删除:virsh undefine name (彻底删除,无法找回,除非备份xml文件) 根据配置文件定义虚拟机:virsh define file-name.xml 挂起,终止:virsh suspend name 回复挂起状态:virsh resumed name 热添加CPU 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@linux-node1opt] #cd/etc/libvirt/qemu/<-虚拟机xml路径-> [root@linux-node1qemu] #ll total4 -rw-------1rootroot3887Dec1111:19CentOS-7-x86_64.xml<-虚拟机xml文件-> 注:修改虚拟机xml文件不直接修改上文所述文件,要在用virsh管理命令修改 virsh #editCentOS-7-x86_64<-控制台内修改-> [root@linux-node1qemu] #virsheditCentOS-7-x86_64<-控制台外修改-> 注:热添加的CPU数不能超过最大值 [root@linux-node1qemu] #virsheditCentOS-7-x86_64<-编辑配置文件-> <vcpuplacement= 'static' >1< /vcpu ><-修改此行内容-> <vcpuplacement= 'auto' current= "1" >4< /vcpu ><-当前为1自动扩容最大为4-> [root@linux-node1~] #virshshutdownCentOS-7-x86_64<-关闭虚拟机-> DomainCentOS-7-x86_64isbeing shutdown [root@linux-node1~] #virshstartCentOS-7-x86_64<-开启虚拟机-> DomainCentOS-7-x86_64started 没有热添加cpu之前先查看cpu的个数 1 2 3 virshsetvcpusCentOS-7-x86_642--live <- 热添加CPU-> 添加完cpu后,查看cpu个数: l激活cpu 1 2 3 4 5 6 7 8 9 [root@linux-node1~] #echo"1">/sys/devices/system/cpu/cpu1/online 高版本的kvm不需要这样做,直接可以激活 [root@linux-node1~] #cat/sys/devices/system/cpu/cpu0/online 1 [root@linux-node1~] #cat/sys/devices/system/cpu/cpu1/online 1 第二种添加cpu的方法:安装时指定 [root@linux-node1~] #virt-install–vcpus5–vcpus5,maxcpus=10,cpuset=1-4,6,8–vcpussockets=2,cores=4,thread=2 更改kvm内存配置 内存的设置拥有一个“气球(balloon)机制”,可以增大减少,但是也要设置一个最大值,默认并没有设置最大值,也可以在安装的时候指定 1 2 3 4 5 [root@linux-node1~] #virsheditCentOS-7-x86_64<-编辑配置文件-> <memoryunit= 'KiB' >4194304< /memory ><-最大内存:4G-> <currentMemoryunit= 'KiB' >1048576< /currentMemory ><-当前内存:1G-> [root@linux-node1~] #virshqemu-monitor-commandCentOS-7-x86_64--hmp--cmdinfoballoon<-查看当前内存-> [root@linux-node1~] #virshqemu-monitor-commandCentOS-7-x86_64--hmp--cmdballoon512<-修改内存:512-> 4.8更改虚拟机网桥连接设置 默认情况下是NAT,但是在生产环境,使用的更多的是桥接模式,更改虚拟机为网桥模式 网桥的基本原理就是创建一个桥接接口br0,在屋里网卡和虚拟网络接口之间传递数据。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 [root@linux-node1~] #brctladdbrbr0<-添加网桥br0-> [root@linux-node1~] #brctladdifbr0eth0<-桥接br0和eth0-> 注:此时会断网如果是远程操作服务器不在身边,建议写成脚本来执行 [root@linux-node1~] #ipaddrdeldeveth0192.168.56.11/24<-删除eth0的IP-> [root@linux-node1~] #ifconfigbr0192.168.56.11/24up<-给br0设置IP-> [root@linux-node1~] #routeadddefaultgw192.168.56.2<-给br0设置网关-> 为了避免断网,直接写成脚本即可: #!/bin/bash brctladdbrbr0 brctladdifbr0eth0 ipaddrdeldeveth0192.168.56.11 /24 ifconfig br0192.168.56.11 /24 up routeadddefaultgw192.168.56.2 [root@linux-node1~] #virsheditCentOS-7-x86_64<-修改虚拟机配置-> 将: <interfacetype= 'network' <-虚拟机网络连接方式-> <macaddress= '52:54:00:0b:f8:a5' /> < source network= 'default' /><-当前主机网络名称-> 修改为: <interfacetype= 'bridge' > <macaddress= '52:54:00:0b:f8:a5' /> < source bridge= 'br0' /> [root@linux-node1~] #virshshutdownCentOS-7-x86_64<-关闭虚拟机-> DomainCentOS-7-x86_64isbeing shutdown [root@linux-node1~] #virshstartCentOS-7-x86_64<-启动虚拟机-> DomainCentOS-7-x86_64started [root@linux-node1~] #ifconfig<-查看网卡信息-> br0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500 inet192.168.56.11netmask255.255.255.0broadcast192.168.56.255 inet6fe80::20c:29ff:fefe:1620prefixlen64scopeid0x20<link> ether00:0c:29:fe:16:20txqueuelen0(Ethernet) RXpackets74bytes8909(8.7KiB) RXerrors0dropped0overruns0frame0 TXpackets63bytes11462(11.1KiB) TXerrors0dropped0overruns0carrier0collisions0 eth0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500 inet6fe80::20c:29ff:fefe:1620prefixlen64scopeid0x20<link> ether00:0c:29:fe:16:20txqueuelen1000(Ethernet) RXpackets26401bytes26066467(24.8MiB) RXerrors0dropped0overruns0frame0 TXpackets8582bytes1939240(1.8MiB) TXerrors0dropped0overruns0carrier0collisions0 lo:flags=73<UP,LOOPBACK,RUNNING>mtu65536 inet127.0.0.1netmask255.0.0.0 inet6::1prefixlen128scopeid0x10<host> looptxqueuelen0(LocalLoopback) RXpackets4bytes216(216.0B) RXerrors0dropped0overruns0frame0 TXpackets4bytes216(216.0B) TXerrors0dropped0overruns0carrier0collisions0 virbr0:flags=4099<UP,BROADCAST,MULTICAST>mtu1500 inet192.168.122.1netmask255.255.255.0broadcast192.168.122.255 ether00:00:00:00:00:00txqueuelen0(Ethernet) RXpackets0bytes0(0.0B) RXerrors0dropped0overruns0frame0 TXpackets2bytes84(84.0B) TXerrors0dropped0overruns0carrier0collisions0 vnet0:flags=4163<UP,BROADCAST,RUNNING,MULTICAST>mtu1500 etherfe:54:00:0b:f8:a5txqueuelen500(Ethernet) RXpackets0bytes0(0.0B) RXerrors0dropped0overruns0frame0 TXpackets0bytes0(0.0B) TXerrors0dropped0overruns0carrier0collisions0 本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1886277,如需转载请自行联系原作者

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

虚拟 router 原理分析- 每天5分钟玩转 OpenStack(101)

上一节我们创建了虚拟路由器&ldquo;router_100_101&rdquo;,并通过 ping 验证了 vlan100 和 vlan101 已经连通。 本节将重点分析其中的原理。 首先我们查看控制节点的 linux bridge 结构发生了什么变化。 vlan101 的 bridge 上多了一个 tape17162c5-00,从命名上可以推断该 TAP 设备对应 router_100_101 的 interface (e17162c5-00fa)。 vlan100 的 bridge 上多了一个 tapd568ba1a-74,从命名上可以推断该 TAP 设备对应 router_100_101 的 interface (d568ba1a-740e)。 当前网络结构如图所示: 但发现一个问题:两个 TAP 设备上并没有配置相应的 Gateway IP。 如果没有 Gateway IP,router_100_101 是如何完成路由的呢? 答案是: l3 agent 会为每个 router 创建了一个 namespace,通过 veth pair 与 TAP 相连,然后将 Gateway IP 配置在位于 namespace 里面的 veth interface 上,这样就能提供路由了。 通过 ip netns 查看 namespace: router 对应的 namespace 命名为 qrouter-<router id>。 通过 ip netns exec <namespace name> ip a 命令查看 router_100_101 namespace 中的 veth interface 配置。 namespace 中有两个 interface: qr-e17162c5-00 上设置了 Gateway IP 172.16.101.1,与 root namespace 中的 tape17162c5-00 组成 veth pair。 qr-d568ba1a-74 上设置了 Gateway IP 172.16.100.1,与 root namespace 中的 tapd568ba1a-74 组成 veth pair。 网络结构如图所示: namespace 中的路由表也保证了 subnet_172_16_100_0 和 subnet_172_16_101_0 之间是可以路由的。 分析到这里,我们已经搞清楚 router_100_101 是如何打通 vlan100 和 vlan 101 了。 但这里有一个关键问题需要进一步分析:为什么要把 router_100_101 放到 namespace 中? 下一节我们将详细分析这个问题。 本文转自CloudMan6 51CTO博客,原文链接:http://blog.51cto.com/cloudman/1863247

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

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

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

WebStorm

WebStorm

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

用户登录
用户注册