Skip to content

Repository files navigation

English

Openstack Cheat Sheet

OpenStack项目

当前最新为Ocata版本, 数据来源于https://www.openstack.org/software/project-navigator, 点击查看完整JSON数据

管理工具

名称LOGO服务年龄部署率成熟度
HorizonhorizonDashboard6年87%6/7
OSclient (CLI)osclient-(cli)Command-line client1年0%0/7
RallyrallyBenchmark service1年23%0/7
SenlinsenlinClustering service1年0%0/7
VitragevitrageRCA (Root Cause Analysis service)1年0%0/7
WatcherwatcherOptimization Service1年0%0/7

网络 & 内容分发

名称LOGO服务年龄部署率成熟度
NeutronneutronNetworking5年93%7/7
DesignatedesignateDNS Service3年16%3/7
DragonflowdragonflowNeutron Plugin2年0%0/7
KuryrkuryrContainer plugin1年0%1/7
OctaviaoctaviaLoad Balancer1年0%1/7
TackertackerNFV Orchestration1年0%1/7
TricircletricircleNetworking Automation for Multi-Region Deployments1年0%0/7

部署工具

名称LOGO服务年龄部署率成熟度
Chef OpenStackchef-openstackChef cookbooks for OpenStack1年0%1/7
KollakollaContainer deployment1年12%1/7
OpenStack Charmsopenstack-charmsJuju Charms for OpenStack1年0%0/7
OpenStack-Ansibleopenstack-ansibleAnsible Playbooks for OpenStack1年0%0/7
Puppet OpenStackpuppet-openstackPuppet Modules for OpenStack1年0%0/7
TripleOtripleoDeployment service1年9%0/7

安全 & 认证

名称LOGO服务年龄部署率成熟度
KeystonekeystoneIdentity service6年96%6/7
BarbicanbarbicanKey Management4年9%4/7
CongresscongressGovernance2年2%1/7
MistralmistralWorkflow service1年5%1/7

数据 & 分析

名称LOGO服务年龄部署率成熟度
TrovetroveDatabase as a Service4年13%3/7
SaharasaharaBig Data Processing Framework Provisioning3年10%3/7
SearchlightsearchlightIndexing and Search1年0%0/7

存储 & 备份 & 恢复

名称LOGO服务年龄部署率成熟度
SwiftswiftObject Store7年52%6/7
CindercinderBlock Storage5年88%7/7
ManilamanilaShared Filesystems3年14%5/7
KarborkarborApplication Data Protection as a Service1年0%0/7
FreezerfreezerBackup, Restore, and Disaster Recovery2年0%0/7

计算

名称LOGO服务年龄部署率成熟度
NovanovaCompute Service7年95%7/7
GlanceglanceImage Service7年95%5/7
IronicironicBare Metal Provisioning Service3年21%5/7
MagnummagnumContainer Orchestration Engine Provisioning2年11%2/7
StorletsstorletsComputable Object Store1年0%0/7
ZunzunContainer Management Service1年0%1/7

应用服务

名称LOGO服务年龄部署率成熟度
HeatheatOrchestration5年67%5/7
ZaqarzaqarMessaging Service3年4%4/7
MuranomuranoApplication Catalog2年11%1/7
SolumsolumSoftware Development Lifecycle Automation1年2%0/7

监控 & 计量

名称LOGO服务年龄部署率成熟度
CeilometerceilometerMetering & Data Collection Service5年55%1/7
CloudKittycloudkittyBilling and chargebacks1年0%0/7
MonascamonascaMonitoring1年0%0/7
aodhaodhAlarming Service1年0%0/7
pankopankoEvent, Metadata Indexing Service7年0%0/7

OpenStack服务与AWS服务对比

OpenStackAWSServiceDescription
KeystoneAWS IAM认证服务身份验证、服务规则和服务令牌
GlanceAMI镜像服务镜像仓库,负责镜像的上传、注册、检索、元数据管理以及下载等功能
NovaEC2计算服务管理计算资源,包括虚拟机以及裸机实例。
NeutronNetworking网络服务提供虚拟网络服务。
CinderEBS块存储服务为虚拟机提供弹性云硬盘功能。
SwiftS3对象存储服务对象存储服务,类似于百度网盘功能。
MistralAmazon SWF工作流(Workflow)服务任务编排以及定时任务管理,比如定时备份、定时开关机等。
SaharaEMR大数据服务Hadoop/Spark集群的部署以及Job提交。
TroveElastiCache & RDS数据库服务提供弹性的数据库服务,支持Mysql、Redis等数据库。
CeilometerCloudWatch资源监控服务资源监控服务,收集各个组件的资源使用情况。
HeatCloudFormation资源编排服务使用模板批量管理资源
SenlinAuto Scaling集群弹性伸缩服务支持资源的弹性水平和垂直扩展功能
ZaqarSQS & SNS消息队列服务、消息推送服务
Ironic-裸机服务管理裸机资源
Magnum-容器编排服务创建和管理Swarm、k8s等容器编排服务
ZunECS(Amazon EC2 Container Service)容器服务提供容器管理服务
DesignateRoute 53DNS服务提供了云域名系统
Barbican-密钥管理服务-
Congress-policy as a service基于异构云环境的策略声明、监控、实施、审计的框架
HorizonAWS console面板服务控制台,为OpenStack的提供Web UI界面管理资源
CloudkittyBilling计费服务
FreezerFreezer(非官方)备份服务文件系统、数据库数据、虚拟机、磁盘自动增量备份到Swift中
ManilaEFS文件共享服务提供文件系统共享服务,如NFS
MuranoAWS Service Catalog应用目录服务类似应用商城,通过统一的框架和API实现应用程序快速部署和应用程序生命周期管理的功能,比如部署Apache HTTP服务
Searchlight-搜索服务OpenStack的资源在Elasticsearch建立索引,提供快速搜索OpenStack平台上的资源
Solum--在OpenStack IaaS平台上,构建PaaS层的持续集成/持续交付(CI/CD)应用,可以简单理解为是一个应用程序App的集成开发平台
TackerNFV Orchestrator service
Tricirclenetworking automation实现多区域OpenStack平台的Neutron网络管理
Vitrage-RCA (Root Cause Analysis) service,平台问题定位分析服务用于组织、分析和扩展OpenStack的告警和事件,在真正的问题发生前找到根本原因
Watcher-资源优化服务根据一定的策略、目标以及采集的数据生成资源优化策略
KarborApplication Data Protection as a Service

官方资源

成员

白金会员

Provide a significant portion of the funding to achieve the Foundation's mission of protecting, empowering and promoting the OpenStack community and software. Each Platinum Member's company strategy aligns with the OpenStack mission and is responsible for committing full-time resources toward the project. There are eight Platinum Members at any given time, each of which holds a seat on the Board of Directors.

黄金会员

Provide funding and pledge strategic alignment to the OpenStack mission. There can be up to twenty-four Gold Members at any given time, subject to board approval.

自动化部署

  • Devstack(Oneiric powered development environment for openstack.)
  • Fuel(The leading purpose-built open source deployment and management tool for OpenStack.)
  • RDO(A communiaty of people using and deploying OpenStack on CentOS, Fedora, and Red Hat Enterprise Linux.)
  • openstack-puppet(Bring scalable and reliable IT automation to OpenStack cloud deployments using puppet.)
  • openstack-ansible(Ansible playbooks for deploying OpenStack.)
  • kolla(Deploying OpenStack using Docker.)
  • TripleO(A program aimed at installing, upgrading and operating OpenStack clouds using OpenStacks own cloud facilities as the foundations.)
  • SaltStack(Deploying Openstack using saltstack.)
  • packstack (Install utility to deploy openstack on multiple hosts.)

监控

竞争对手

  • AWS(Offers reliable, scalable, and inexpensive cloud computing services.)
  • CloudStack(Open source software designed to deploy and manage large networks of virtual machines, as highly scalable Infrastructure as a Service (IaaS) cloud computing platform.)
  • Vmware(The industry-leading virtualization software company.)
  • Docker(Docker containers and tooling make building and shipping applications dramatically easier and faster.)

服务目录

服务名称服务类型服务功能监听端口默认endpoints
ironicbaremetal裸机服务6385http://${HOST}:6385
ironic-inspector裸机自动发现服务5000baremetal-introspectionhttp://${HOST}:5050
cindervolume块存储服务9776http://${HOST}:8776/v2/%(tenant_id)s
glanceimage镜像服务9292http://${HOST}:9292
heatorchestration编排服务8004http://${HOST}:8004/v1/%(tenant_id)s
heat-cfncloudformation--8000http://${HOST}:8000/v1
keystoneidentity认证服务5000、35357http://${HOST}:5000/v3
magnumcontainer-infra容器编排服务9511http://${HOST}:9511/v1
mistralworkflow工作流服务9898http://${HOST}:9898/v2
neutronnetwork网络服务9696http://${HOST}:9696
novacompute计算服务8774、8773、8775http://${HOST}:8774/v2.1/%(tenant_id)s
saharadata-processing大数据服务8386http://${HOST}:8386/v1.1/%(project_id)s
swiftobject-store对象存储服务8080http://${HOST}:8080/v1/AUTH_%(tenant_id)s
trovedatabase数据库服务8779http://${HOST}:8779/v1.0/%(tenant_id)s
designatednsDNS服务9001http://${HOST}:9001/
barbicankey-manager密钥服务9311http://${HOST}:9311/
zaqarmessaging消息服务8888http://${HOST}:8888/
manilashare文件共享服务8786http://${HOST}:8786/v1/%(tenant_id)s
aodhalarming告警服务8042http://${HOST}:8042
cloudkittyrating计费服务8889http://${HOST}:8889
ceilometermetering计量服务8777http://${HOST}:8777

服务初始化模板--以cinder为例

初始化数据库:

CREATEDATABASEcinder;
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'localhost' IDENTIFIED BY 'CINDER_DBPASS';
GRANT ALL PRIVILEGES ON cinder.* TO 'cinder'@'%' IDENTIFIED BY 'CINDER_DBPASS';

创建账户:

openstack user create --domain default --password CINDER_PASS cinder
openstack role add --project service --user cinder admin

创建endpoints:

openstack service create --name cinder \
--description "OpenStack Block Storage" volume
openstack endpoint create --region RegionOne \
volume public 'http://controller:8776/v2/%(tenant_id)s'
openstack endpoint create --region RegionOne \
volume admin 'http://controller:8776/v2/%(tenant_id)s'
openstack endpoint create --region RegionOne \
volume internal 'http://controller:8776/v2/%(tenant_id)s'

keystore

glance

nova

创建Ceph secret:

#!/bin/sh
USERNAME=${1:-admin}
UUID=${2:-$(uuidgen)}# 生成secret.xml文件
cat > secret.xml <<EOF<secret ephemeral='no' private='no'> <uuid>${UUID}</uuid> <usage type='ceph'> <name>client.${USERNAME} secret</name> </usage></secret>EOF# 基于xml文件创建secret
UUID=$(sudo virsh secret-define --file secret.xml | grep -Po '\w{8}-(\w{4}-){3}\w{12}')if [ $?-ne 0 ];then
rm -f client."${USERNAME}".key secret.xml
exit 1
fi# 获取ceph client的密钥
KEY=$(ceph auth get-key client."${USERNAME}")if [ $?-ne 0 ];then
sudo virsh secret-undefine "${UUID}"exit 1
fi# 关联密钥到新创建的secret
sudo virsh secret-set-value --secret "${UUID}" --base64 "${KEY}">/dev/null \
&& rm -f client."${USERNAME}".key secret.xml
echo"Secret $UUID create sucessfully!"

👉scripts/create_libvirt_ceph_secret.sh.

Tips

列出所有的错误云主机:

nova list --status error --all-tenants

列出主机和映射的宿主机:

nova list --fields name,host

获取所有主机的id:

nova list --minimal | tail -n +4 | head -n -1 | cut -d ' ' -f 2

获取所有error状态的主机id:

nova list --minimal --status error --all-tenants | tail -n +4 | head -n -1 | cut -d ' ' -f 2

获取所有名称以"test"开头的主机:

nova list --name "^test"

获取所有主机挂载的volume id:

nova show --minimal 65e761b3-63b4-498f-9735-08e246c1e976 | grep 'os-extended-volumes:volumes_attached' | cut -d '|' -f 3 | jq '.[].id' | sed 's/"//g'

获取所有主机挂载的volume id以及设备名称:

nova show --minimal | grep 'os-extended-volumes:volumes_attached' | cut -d '|' -f 3 | jq '.[]|.id + " " + .device_name' | sed 's/"//g'

cinder

CinderSupportMatrix:

DriverVolumeSnapshotCloneReplicationConsistency GroupQosExtend(扩容)
BlockbridgeLibertyLibertyLibertyLibertyLiberty
CloudByteKiloKiloKiloKilo
Coho DataMitakaMitakaMitakaNewtonMitaka
CoraidGrizzlyGrizzlyHavanaHavana
DateraJunoJunoJunoMitakaJuno
Dell EqualLogicHavanaHavanaHavanaIcehouse
Dell Storage CenterKiloKiloKiloMitakaLibertyKilo
DRBD via DRBDmanageLibertyLibertyLibertyLiberty
Dell EMC VMAX AF 250F, 450F, 850FMitakaMitakaMitakaOcataMitakaNewtonMitaka
Dell EMC VMAX3 100K, 200K, 400KLibertyLibertyLibertyOcataMitakaNewtonMitaka
Dell EMC VMAX V2 10K, 20K, 40KGrizzlyGrizzlyGrizzlyKiloJuno
Dell EMC UnityOcataOcataOcataOcataOcata
Dell EMC VNX DirectIcehouseIcehouseIcehouseMitakaJunoIcehouse
Dell EMC XtremIOJunoJunoJunoLibertyJuno
Dell EMC ScaleIOLibertyLibertyLibertyMitakaMitakaLiberty
Fujitsu ETERNUSJunoJunoJunoJuno
GlusterFSGrizzlyHavanaHavanaHavana
Hitachi (HUS)HavanaHavanaHavanaHavana
Hitachi (HUS-VM)JunoJunoJunoJuno
Hitachi (VSP, VSP G1000)JunoJunoJunoJuno
Hitachi (VSP G200-G800)KiloKiloKiloKilo
Hitachi (HNAS)JunoJunoJunoJuno
HPE 3PAR (StoreServ)GrizzlyGrizzlyGrizzlyMitakaLibertyIcehouseHavana
HPE Lefthand (StoreVirtual)DiabloHavanaIcehouseMitakaLibertyHavana
HP MSAIcehouseIcehouseIcehouseIcehouse
HPE XPLibertyLibertyLibertyLiberty
Huawei T Series V1HavanaHavanaHavanaHavana
Huawei T Series V2KiloKiloKiloKiloKilo
Huawei V3 SeriesKiloKiloKiloMitakaNewtonKiloKilo
Huawei 18000 SeriesKiloKiloKiloKiloKilo
Huawei Dorado V3 SeriesOcataOcataOcataOcataOcata
IBM DS8000HavanaHavanaHavanaJunoKiloHavana
IBM FlashSystemKiloKiloKiloKilo
IBM FlashSystem A9000/A9000RMitakaMitakaMitakaMitakaMitakaMitakaMitaka
IBM GPFSHavanaHavanaHavanaHavana
IBM Storwize family/SVCFolsomFolsomGrizzlyJunoKiloJunoHavana
IBM NASIcehouseIcehouseIcehouseIcehouse
IBM XIV / Spectrum AccelerateFolsomFolsomHavanaMitakaLibertyHavana
ITRI DISCOMitakaMitakaMitakaMitaka
LenovoLibertyLibertyLibertyLiberty
LVM (Reference)FolsomFolsomGrizzlyHavana
NetApp Data ONTAPEssexFolsomGrizzlyHavanaMitakaJunoHavana
NetApp E/EF-seriesIcehouseIcehouseIcehouseMitakaIcehouse
NexentaEssexEssexHavanaHavana
NFS (Reference)FolsomHavana
Nimble StorageJunoJunoJunoJuno
Pure StorageJunoJunoJunoMitakaKiloJuno
QuobyteKiloKiloKiloKilo
RBD (Ceph)CactusDiabloHavanaHavana
ScalityGrizzlyGrizzlyHavanaHavana
SMBJunoJunoJuno
NetApp SolidFireFolsomFolsomGrizzlyMitakaMitakaIcehouseHavana
StorPoolKiloKiloKiloKilo
SynologyNewtonNewtonNewtonNewton
SymantecKiloKiloKiloKilo
TintriLibertyLibertyLibertyLiberty
Violin MemoryKiloKiloKilon/an/an/aKilo
VMwareHavanaHavanaHavanaIcehouse
Windows Server 2012GrizzlyGrizzly
X-IO technologiesKiloKiloKiloKiloKilo
Zadara StorageFolsomHavanaHavanaHavana
Solaris (ZFS)Diablo
ProphetStor (Flexvisor)JunoJunoJunoKiloJuno
Infortrend (EonStor DS/GS/GSe Family)LibertyLibertyLibertyLiberty
CoprHDNewtonNewtonNewtonNewtonNewton
KaminarioNewtonNewtonNewtonNewtonNewton
ZTENewtonNewtonNewtonNewton
NEC Storage M seriesOcataOcataOcataOcataOcata
INFINIDATOcataOcataOcataOcata
QNAPOcataOcataOcataOcata
ReduxioOcataOcataOcataOcata

挂载volume到本地

安装cinderclient扩展包:

pip install python-brick-cinderclient-ext

attach volume到本地:

$ cinder local-attach 9770a53e-91ce-4cd0-afde-5793bfa6b0ef
+----------+-----------------------------------+
| Property | Value |
+----------+-----------------------------------+
| path | /dev/sdb || scsi_wwn | 360000000000000000e00000000010001 ||type| block |
+----------+-----------------------------------+

挂载volume:

$ mkfs.ext4 /dev/sdb
mke2fs 1.42.13 (17-May-2015)
Creating filesystem with 262144 4k blocks and 65536 inodes
Filesystem UUID: d53932de-2844-4f63-8b37-67db52d1a243
Superblock backups stored on blocks:
32768, 98304, 163840, 229376
Allocating group tables: done
Writing inode tables: done
Creating journal (8192 blocks): done
Writing superblocks and filesystem accounting information: done
$ mount /dev/sdb /mnt

umount & detach:

umount /mnt
cinder local-detach 9770a53e-91ce-4cd0-afde-5793bfa6b0ef

neutron

swift

trove

sahara

镜像列表

创建集群--以spark 1.6.0为例

初始化变量:

# 集群名字
NAME=test
# 镜像uuid,必须是通过sahara注册过的镜像
IMAGE_ID=6ba27a59-ecd7-47d4-8df4-925acb23bb87
# 浮动IP网络uuid
FLOATING_IP=7517cbd2-2d07-44ad-8eaa-b9ec7098071a
# flavor id
FLAVOR_ID=2
# 密钥名称
KEYPAIR_NAME=server-230
# 租户网络uuid
NETWORK_ID=e478bc87-a067-402f-98e2-9bdc9b180d5e

创建master group:

# Create master node group template
cat > spark-master-node-group-template.json <<EOF{ "auto_security_group": true, "availability_zone": "", "description": "spark 1.6.0 master node group", "flavor_id": "${FLAVOR_ID}", "floating_ip_pool": "${FLOATING_IP}", "hadoop_version": "1.6.0", "image_id": "${IMAGE_ID}", "is_protected": false, "is_proxy_gateway": false, "is_public": true, "name": "${NAME}-master", "node_configs": { "HDFS": {} }, "node_processes": [ "namenode", "master" ], "plugin_name": "spark", "security_groups": [], "shares": [], "use_autoconfig": true, "volumes_per_node": 1, "volumes_size": 20}EOF
cat spark-master-node-group-template.json
sahara node-group-template-create --json spark-master-node-group-template.json 2>/dev/null

创建slave group:

# Create worker node group template
cat > spark-worker-node-group-template.json <<EOF{ "auto_security_group": true, "availability_zone": "", "description": "spark 1.6.0 master node group", "flavor_id": "2", "floating_ip_pool": "${FLOATING_IP}", "hadoop_version": "1.6.0", "image_id": "${IMAGE_ID}", "is_protected": false, "is_proxy_gateway": false, "is_public": true, "name": "${NAME}-worker", "node_configs": { "HDFS": {} }, "node_processes": [ "datanode", "slave" ], "plugin_name": "spark", "security_groups": [], "shares": [], "use_autoconfig": true, "volumes_per_node": 1, "volumes_size": 20}EOF
cat spark-worker-node-group-template.json
sahara node-group-template-create --json spark-worker-node-group-template.json

创建集群模板:

SPARK_MASTER_GROUP_ID=$(sahara node-group-template-list 2>/dev/null | grep -P -- "\s$NAME-master\s"| awk '{print $4}')
SPARK_WORKER_GROUP_ID=$(sahara node-group-template-list 2>/dev/null | grep -P -- "\s$NAME-worker\s"| awk '{print $4}')# Create cluster template
cat >spark-cluster-template.json <<EOF{ "anti_affinity": [], "cluster_configs": { "HDFS": { "dfs.replication": 1 }, "Spark": {}, "general": { "Enable XFS": true } }, "description": "spark 1.6.0", "hadoop_version": "1.6.0", "is_protected": false, "is_public": true, "name": "${NAME}-cluster-template", "node_groups": [ { "count": 1, "name": "${NAME}-master", "node_group_template_id": "${SPARK_MASTER_GROUP_ID}" }, { "count": 1, "name": "${NAME}-worker", "node_group_template_id": "${SPARK_WORKER_GROUP_ID}" } ], "plugin_name": "spark", "shares": [], "use_autoconfig": true}EOFecho$NAME-cluster-template:
cat spark-cluster-template.json
sahara cluster-template-create --json spark-cluster-template.json

创建集群:

# Create cluster
CLUSTER_TEMPLATE_ID=$(sahara cluster-template-list 2>/dev/null | grep -P "\s${NAME}-cluster-template\s"| awk '{print $4}')
cat >spark_cluster.json <<EOF{ "cluster_template_id": "${CLUSTER_TEMPLATE_ID}", "default_image_id": "${IMAGE_ID}", "description": "", "hadoop_version": "1.6.0", "is_protected": false, "is_public": true, "name": "${NAME}", "neutron_management_network": "${NETWORK_ID}", "plugin_name": "spark", "user_keypair_id": "${KEYPAIR_NAME}"}EOFecho$NAME:
cat spark_cluster.json
sahara cluster-create --json spark_cluster.json

查看集群列表:

sahara cluster-list

完整脚本地址: create-spark-cluster.sh

提交spark任务

初始化变量:

# 任务名称
JOB_NAME=int32bit-spark-wordcount.jar
# jar包路径
BINARY_FILE=spark-wordcount.jar
# input hdfs路径
INPUT=hdfs://int32bit-spark-spark-master-0:8020/user/ubuntu/hello.txt
# output hdfs 路径
OUTPUT=hdfs://int32bit-spark-spark-master-0:8020/user/ubuntu/output2
# 集群的uuid
CLUSTER_UUID=27d3fc76-d913-4d64-8491-5fc0968efe90
# main函数所在的class
MAIN_CLASS=sahara.edp.spark.SparkWordCount

注意:

  • INPUT的测试文件需要先上传到hdfs中。
  • OUTPUT指定的hdfs路径不能存在

下载并上传jar包到sahara中:

# Upload job binary data
wget 'https://github.com/int32bit/openstack-cheat-sheet/raw/master/sahara/spark-wordcount.jar' -O ${BINARY_FILE}
sahara job-binary-data-create --name "${JOB_NAME}" --file "${BINARY_FILE}"# Create job binary
DATA_ID=$(sahara job-binary-data-list 2>/dev/null | grep -P -- "\s${JOB_NAME}\s"| awk '{print $2}')
sahara job-binary-create --name "${JOB_NAME}" --url "internal-db://${DATA_ID}"

创建job模板:

# Create job template
BINARY_ID=$(sahara job-binary-list | grep -P -- "\s${JOB_NAME}\s"| awk '{print $2}')
cat >spark-job-template.json <<EOF{ "description": "", "interface": [], "is_protected": false, "is_public": true, "libs": [], "mains": [ "${BINARY_ID}" ], "name": "${JOB_NAME}-template", "type": "Spark"}EOF
sahara job-template-create --json spark-job-template.json

提交job:

# Submit job
JOB_TEMPLATE_UUID=$(sahara job-template-list 2>/dev/null | grep -P -- "\s${JOB_NAME}-template\s"| awk '{print $2}')
cat >job.json <<EOF{ "cluster_id": "${CLUSTER_UUID}", "is_protected": false, "is_public": true, "interface": {}, "job_configs": { "args": [ "${INPUT}", "${OUTPUT}" ], "configs": { "edp.hbase_common_lib": true, "edp.java.java_opts": "", "edp.java.main_class": "${MAIN_CLASS}", "edp.spark.adapt_for_swift": true, "edp.substitute_data_source_for_name": true, "edp.substitute_data_source_for_uuid": true } }}EOF
sahara job-create --job-template "${JOB_TEMPLATE_UUID}" --json job.json

查看job状态:

sahara job-list

完整脚本: submit-spark-job.sh

其它链接

  1. sahara测试: https://github.com/openstack/sahara-tests

manila

magnum

About

openstack cheat sheet (Openstack data management)

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages