Openstack知识及常用命令
OpenStack定义:OpenStack是一个负责启动和管理虚拟机实例的管理软件,它是搭建云平台的解决方案,可以搭建公有云、私有云和企业云。openstack核心组件及功能:Openstack常用命令:提示:任何命令执行前都需要先执行环境变量脚本,openstack命令不同版本之间命令可能存在差异,或者组件配置问题引起的命令不可用,请根据实际环境执行命令。所有命令根据ID查询的命令基本也可通过N
OpenStack定义:
OpenStack是一个负责启动和管理虚拟机实例的管理软件,它是搭建云平台的解决方案,可以搭建公有云、私有云和企业云。Openstack属于云计算中的IaaS服务类型
openstack核心组件及功能:
Compute(代号为"Nova") :管理计算资源
Networking Service(代号为"Neutron"):管理网络资源,为虚拟机、计算和控制节点提供网络功能
Image Service(代号为"Glance"):用于提供镜像服务,属于储存范畴
Identity(代号为"Keystone"):管理用户及其权限维护OpenStack Services的Endpoint认证和鉴权
Dashboard(代号为"Horizon"):用于提供图形用户界面
Block Storage(代号为"Cinder"):用于提供块存储功能
Object Storage(代号为"Swift"):用于提供对象存储功能
Ceilometer:提供监控服务
openstack各组件之间的关系:
下图自己绘制的关系图中各组件功能已做不同颜色区分,再梳理一下它们之间的关系:
Nova提供计算服务,所有的计算实例都由Nova进行生命周期的调度管理,如:虚机启动、挂起、停止、删除等;
启动实例不能每次都要重新安装来启动,这时就用到了Glance镜像服务;
虚机肯定需要上网,需要由Neutron提供网络服务;
既然是安装虚机,自然少不了存储空间或者空间太少需要扩容,这时需要由Cinder提供块存储服务;
以上四种服务可以让一台实例成功运行起来,但是不是谁都可以在我搭建的环境上创建虚机的,这时就用到了Keystone的鉴权认证服务;
搭建的环境是不是可以租出去呢?若租出去又该如何监控客户使用了哪些资源呢?此时需要Cellometer提供监控计费服务;客户使用的带宽、内存等不同规格收费自然不同;
若客户嫌弃命令页面操作太麻烦,需要更加友好的可视化操作页面,此时就用到了Horizon服务,也就是web端的可视化操作页面;
为了给客户提供更加优质的服务并且减少不必要的资源浪费,针对某些项目可能会用到Swift对象存储服务;举个大家都在用的百度网盘的例子,很多人都会去存一些电影,但是可能有大部分电影是重复的,若每个百度网盘用户都真实的把视频存到了云端,大量的重复视频岂不是浪费了许多百度的存储空间?这时候对象存储是最好的选择,用户上传视频时,先根据算法看看云端是否有相同的内容,若查到有相同的存储信息,直接反馈用户“上传成功”,实际并没有上传的!用户下载时在云端找到相同的资源提供其下载就可以了,这样既服务了客户又节省了存储空间
Keystone中的基本概念:
User:即用户,指通过keystone进行访问的人或程序。Users通过认证信息(凭据、账号密码等)进行验证
Tenant:即租户,指各服务中的一些可以访问的资源集合。例如,在Nova中一个tenant可以是一些主机,在Neutron中一个tenant可以是一些网络资源等。User总是默认绑定到某些tenant上
Role:即角色,指一组用户可以访问的资源权限。例如Nova中的虚拟机、Cinder中的资源。Users可以被添加到任意一个全局的或租户的角色中。在全局的role中,用户的role权限作用于所有的租户;在租户内的role中,用户仅能在当前租户内执行role规定的权限
Service:即服务,如Nova、Cinder、Glance。根据上面三个概念(User、Tenant和Role)可知一个服务可以确认当前用户是否具有访问其资源的权限。但是当一个User尝试着访问其租户内的服务时,他必须知道这个服务是否存在以及如何访问,所以通常会使用不同的名称表示不同的服务
Endpoint:指一个服务暴露出来的访问点,如果需要访问一个服务,则必须知道它的endpoint。因此,在keystone中包含一个endpoint模板并存储了所有服务的endpoint信息。endpoint 中包含一个URLs列表,列表中的每个URL都对应一个服务实例的访问地址,且具有public、private和admin三种权限
Token:指访问资源的钥匙。它是通过Keystone验证后的返回值,在之后的与其他服务交互中只需要携带Token值即可。每个Token都有有效期
他们之间的关系如下图所示
1、租户下,管理着许多用户(人或程序),这些用户可能是全局角色也可能是租户内的角色
2、每个用户都有自己的credential(凭证)用户名+密码或者其他凭证
3、用户在访问其它资源(如:Nova、Cinder)之前,需要用自己的凭据去请求keystone服务,获得验证信息(主要是Token信息)和服务信息(服务目录和它们的endpoint)
4、用户拿着Token信息,就可以去访问特定的资源啦
Openstack常用命令:
提示:任何命令执行前都需要先执行环境变量脚本,openstack命令不同版本之间命令可能存在差异,或者组件配置问题引起的命令不可用,请根据实际环境执行命令。所有命令根据ID查询的命令基本也可通过NAME查询。
执行环境变量脚本,获得admin凭证访问 | source admin-openrc.sh |
列出可用网络 | neutron net-list |
查看网络详情 | neutron net-show NET_ID |
查看路由列表 | neutron router-list |
查看路由详情 | neutron router-show ROUTER_ID |
查找与网络相关并以av开头的文件 | neutron -h | grep av(文件名) |
列出防火墙 | neutron firewall-list |
查看防火墙详情 | neutron firewall-show FIREWALL_ID |
查看防火墙策略详情 | neutron firewall-policy-show POLICY_ID |
创建端口(虚拟网卡) | neutron port-create subnetwork_ID --security-group sec_ID --name port_NAME |
查看端口(虚拟网卡)详情 | neutron port-show NAME |
删除端口(虚拟网卡) | neutron port-delete NAME |
创建安全组 | openstack security group create NAME |
列出所有安全组 | openstack security group list 或 neutron security-group-list |
查看安全组详情 | openstack security group show ID |
列出安全组所有规则 | openstack security group rule list 或 neutron security-group-list-rules secg_NAME |
查看安全组规则详情 | openstack security group rule show ID |
添加安全组规则 | openstack security group rule create --remote-ip 0.0.0.0/0 --protocol icmp --egress --ethertype IPv4 <group id> |
将安全组添加到主机 | openstack server add security group <server id> <secgroup id> |
获取主机列表 | openstack hypervisor list |
查看主机详情 | openstack hypervisor show NAME |
列出实例 | openstack server list 或 nova list |
列出所有实例 | openstack server list --all 或 nova list --all |
获取主机类型列表 | nova flavor-list |
查看主机类型详情 | nova flavor-show ID |
实例诊断统计 | nova diagnostices ID |
查询各租户下的资源统计信息 | nova usage-list |
nova状态升级检查 | nova-status upgrade check |
列出所有主机节点 | nova host-list |
列出主机节点资源使用率统计信息 | nova host-describe 主机名 |
列出已加载网络扩展 | Openstack extension list --network |
列出所有的用户 | openstack user list |
列出认证服务目录 | openstack catalog list |
创建镜像 | glance image-create IMAGENAME |
列出镜像 | openstack image list 或 glance image-list |
删除指定的镜像 | openstack image delete IMAGE 或 glance image-delete IMAGE |
查看某镜像描述 | openstack image show IMAGE 或 glance image-show ID |
更新镜像 | openstack image IMAGE 或 glance image-update ID |
上传内核镜像 | openstack image create cirros-threepart-kernel \ --disk-format aki --container-format aki –public \ --file ~/images/cirros-0.3.5-x86_64-kernel |
上传RAM镜像 | openstack image create cirros-threepart-ramdisk \ --disk-format ari --container-format ari –public \ --file ~/images/cirros-0.3.5-x86_64-initramfs |
上传第三方镜像 | openstack image create cirros-threepart --disk-format ami \ --container-format ami –public \ --property kernel_id=$KID -property ramdisk_id=$RID \ --file ~/images/cirros-0.3.5-x86_64-rootfs.img |
注册raw镜像 | openstack image create cirros-raw --disk-format raw \ --container-format bare –public \ --file ~/images/cirros-0.3.5-x86_64-disk.img |
列出实例 | openstack server list 或 nova list |
显示实例详细信息 | openstack server show NAME/ID 或 nova show NAME/ID |
创建一个为名m1.tiny的 flavor | openstack flavor create --ram 512 --disk 1 --vcpus 1 m1.tiny |
列出flavor | openstack flavor list 或者模糊查找flavor openstack flavor list | grep 关键字 |
用类型和镜像名称(如果名称唯一)来启动云主机 | openstack server create --image IMAGE --flavor FLAVOR INSTANCE_NAME \ openstack server create --image cirros-0.3.5-x86_64-uec --flavor m1.tiny \ MyFirstInstance |
查看云主机的控制台日志 | openstack console log show MyFirstInstance |
设置云主机的元数据 | nova meta volumeTwoImage set newmeta=my meta data |
创建一个实例快照 | openstack image create volumeTwoImage snapshotOfVolumeImage openstack image show snapshotOfVolumeImage |
实例暂停 | openstack server pause NAME 或 nova pase ID openstack server pause volumeTwoImage |
取消实例暂停 | openstack server resume NAME 或 nova resume ID |
取消实例挂起 | openstack server unpause NAME 或 nova unpause ID |
实例挂起 | openstack server suspend NAME 或 nova suspend ID |
实例停止 | openstack server stop NAME |
实例开始 | openstack server start NAME |
实例恢复 | openstack server rescue NAME 或 nova resume ID openstack server rescue NAME --rescue_image_ref RESCUE_IMAGE |
调整规格大小 | openstack server resize NAME FLAVOR openstack server resize my-pem-server m1.small openstack server resize --confirm my-pem-server1 |
实例重建 | openstack server rebuild NAME IMAGE |
实例重启 | openstack server reboot NAME 或 nova reboot ID |
删除实例 | nova delete ID |
将用户数据和文件注入到实例 | openstack server create --user-data FILE INSTANCE openstack server create --user-data userdata.txt --image cirros-qcow2 \ --flavor m1.tiny MyUserdataInstance2 |
创建密钥对 | openstack keypair create test > test.pem chmod 600 test.pem 或 nova keypair-add --pub-key ~/.ssh/id_rsa.pub Key_NAME |
查看密钥对详情 | nova keypair-show Key_name openstack keypair show Key_name |
删除密钥对 | nova keypair-delete Key_name openstack keypair delete Key_name |
变更密钥对 | nova keypair-change |
启动实例 | openstack server create --image cirros-0.3.5-x86_64 --flavor m1.small \ --key-name test MyFirstServer |
使用ssh连接到实例 | ip netns exec qdhcp-98f09f1e-64c4-4301-a897-5067ee6d544f \ ssh -i test.pem cirros@10.0.0.4 |
在默认的安全组中,添加ping和SSH规则 | openstack security group rule create default \ --remote-group default --protocol icmp openstack security group rule create default \ --remote-group default --dst-port 22 |
创建网络 | openstack network create NETWORK_NAME |
创建子网 | openstack subnet create --subnet-pool SUBNET --network NETWORK SUBNET_NAME |
创建一个云硬盘 | openstack volume create --size SIZE_IN_GB NAME 或 cinder create SIZE_IN_GB --display-name NAME --volume-type TYPE |
启动实例并将其链接到云硬盘上 | openstack server create --image cirros-qcow2 --flavor m1.tiny MyVolumeInstance |
列出所有云硬盘 | openstack volume list |
将云硬盘挂载到主机 | nova volume-attach 主机ID 卷ID |
当实例状态正常且云硬盘状态可用时,将云硬盘挂载到实例 | openstack server add volume INSTANCE_ID VOLUME_ID |
登陆进实例之后管理卷组 | 列出存储器:fdisk -l 在卷上建立文件系统:mkfs.ext3 /dev/vdb 创建一个挂载点:mkdir /myspace 在挂载点挂载卷:mount /dev/vdb /myspace 在卷上创建一个文件:touch /myspace/helloworld.txt ls /myspace 卸载卷:umount /myspace |
展示存储账户,容器以及对象的信息 | swift stat swift stat ACCOUNT swift stat CONTAINER swift stat OBJECT |
列出容器 | swift list |
查看端口列表 | neutron port-list |
列出卷设备 | cinder list |
显示卷设备详情 | cinder show ID |
调整卷设备大小 | cinder extend ID 大小数值 |
删除卷设备 | cinder delete ID |
创建卷设备传送请求 | cinder transfer-create ID |
查看等待传送的卷设备 | cinder transfer-list |
接收被传送的卷设备 | cinder transfer ID authKey |
删除正在传送的卷设备 | cinder transfer -delete transferID |
查看有效计算节点 | nova hypervisor-list |
查看计算节点详情 | nova hypervisor-servers ID |
更多推荐
所有评论(0)