Openstack知识及常用命令

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对象存储服务;举个大家都在用的百度网盘的例子,很多人都会去存一些电影,但是可能有大部分电影是重复的,若每个百度网盘用户都真实的把视频存到了云端,大量的重复视频岂不是浪费了许多百度的存储空间?这时候对象存储是最好的选择,用户上传视频时,先根据算法看看云端是否有相同的内容,若查到有相同的存储信息,直接反馈用户“上传成功”,实际并没有上传的!用户下载时在云端找到相同的资源提供其下载就可以了,这样既服务了客户又节省了存储空间

Openstack常用命令:

 提示:任何命令执行前都需要先执行环境变量脚本,openstack命令不同版本之间命令可能存在差异,或者组件配置问题引起的命令不可用,请根据实际环境执行命令。所有命令根据ID查询的命令基本也可通过NAME查询。

执行环境变量脚本,获得admin凭证访问

source admin-openrc.sh

列出可用网络 neutron net-list
查看路由列表 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
列出所有安全组 openstack security group list 或 nova secgroup-list
查看安全组详情 openstack security group show ID
列出安全组所有规则 openstack security group rule list 或 nova secgroup-list-rules default
查看安全组规则详情 openstack security group rule show 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
查看某镜像描述 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
用类型和镜像名称(如果名称唯一)来启动云主机

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

启动实例

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
启动实例并将其链接到卷上 openstack server create --image cirros-qcow2 --flavor m1.tiny MyVolumeInstance
列出所有卷 openstack volume list
当实例状态正常且卷状态可用时,将卷连接到实例 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

 

 

posted @ 2020-08-19 17:08  小白典  阅读(1586)  评论(0编辑  收藏  举报