首页 文章 精选 留言 我的

精选列表

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

openstack学习笔记七 swift安装

项目--对象存储--容器 在容器里你创建的即使是一个文件夹,那么体现在硬盘里,也是一个文件,也就是对象object 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 [root@h1~(keystone_admin)] #openstackservicelist +----------------------------------+------------+--------------+ |ID|Name|Type| +----------------------------------+------------+--------------+ |30c62c3c0797462a8bd4ff059a71296e|swift|object-store| [root@h1~(keystone_admin)] #keystoneendpoint-list|grep30c62c3c0797462a8bd4ff059a71296e |2408bc6cb5164053b86c0983fd39961a|RegionOne|http: //192 .168.1.201:8080 /v1/AUTH_ %(tenant_id)s|http: //192 .168.1.201:8080 /v1/AUTH_ %(tenant_id)s|http: //192 .168.1.201:8080|30c62c3c0797462a8bd4ff059a71296e| [root@h1~(keystone_admin)] #swiftlist h1 [root@h1~(keystone_admin)] #swiftlisth1 test1/ test1 /k1 .pem [root@h1~(keystone_admin)] #find/srv/node/swiftloopback/-typef-name"*.data" /srv/node/swiftloopback/objects/188901/27f/b87961659e1149b7094bb52b5d60f27f/1467698512 .58656.data ##删除k1后就没有了 /srv/node/swiftloopback/objects/59261/c81/39df7c7803321e4878fdcec1ac469c81/1467698493 .15690.data 映射 :ring(环) 映射到硬盘 容器 在容器里面创建对象 对象 文件就是对象 账户 权限 ring文件 保存到硬盘 account.ring.gz 账户 container.ring.gz 容器 object.ring.gz 对象 保存到硬盘里的目录,这个目录为zone /srv/node/swiftloopback/ 挂载点 必须放在/srv/node/目录下 zone1 zone2 两个相同,备份 packstack方式安装完成后,上传一个文件,只在硬盘里保留一份 对象先映射到 虚拟节点/分区partition 2^n 再映射到zone 目的:减少数据的迁移量 swift服务 1 一致性服务 consisteny server auditor 定期扫描,如果出现问题,就把有问题的文件放隔离区 replicate 从另外的zone复制相同的文件过来,实现数据同步 update 如果replicate失效了,那么等段时间再试 2 代维服务proxy server 接受用户发送过来的请求,比如上传、删除等请求 3 存储服务 容器服务器 container server 对象服务器 object server 账户服务器 acount server 安装软件 1 2 [root@h4~] #yumlistopenstack-swift* [root@h4~] #yum-yinstallopenstack-swift.noarchopenstack-swift-account.noarchopenstack-swift-container.noarchopenstack-swift-object.noarchopenstack-swift-proxy.noarchmemcache*python-swiftclient 任何服务都要向keystone进行注册 1 2 3 [root@h4~(keystone_admin)] #keystoneuser-create--nameswift--passhequan [root@h4~(keystone_admin)] #keystonetenant-create--nameservices [root@h4~(keystone_admin)] #keystoneuser-role-add--userswift--tenantservices--roleadmin 创建服务,指定endpoint 1 2 [root@h4~(keystone_admin)] #keystoneservice-create--nameswift--typeobject-store--description"swift" keystoneendpoint-create--service- id 0995c9a9ed4847da86435bca9a7be8fc--publicurl 'http://192.168.1.204:8080/v1/AUTH_%(tenant_id)s' --internalurl 'http://192.168.1.204:8080/v1/AUTH_%(tenant_id)s' --adminurl 'http://192.168.1.204:8080' 配置swift 准备了2个分区 1 2 3 zone1zone2在 /srv/node 12 /dev/sdb1 /srv/node/zone1 xfsdefaults00 ##挂载 13 /dev/sdb2 /srv/node/zone2 xfsdefaults00 1 [root@h4~(keystone_admin)] #chown-Rswift.swift/srv/node/ 1 2 3 4 5 6 7 8 9 10 [root@h4swift(keystone_admin)] #catswift.conf [swift- hash ] swift_hash_path_suffix=%SWIFT_HASH_PATH_SUFFIX% [root@h1~(keystone_admin)] #find/srv/node/swiftloopback/-typef-name"*.data" /srv/node/swiftloopback/objects/102340/afe/63f12ea37cca17f0227381adcf93eafe/1467982747 .16551.data zone对象类型/分区的编号 /sufix/ 文件名字的 hash /上传文件的时间戳 [root@h1~(keystone_admin)] #date--date=@1467982747.16551 2016年07月08日星期五20:59:07CST 创建ring文件的准备工作 创建模板,设定有几个备份,有多少分区。 1 2 3 [root@h4swift(keystone_admin)] #swift-ring-builderaccount.buildercreate1221 [root@h4swift(keystone_admin)] #swift-ring-builderobject.buildercreate1221 [root@h4swift(keystone_admin)] #swift-ring-buildercontainer.buildercreate1221 指定映射位置 1 2 3 4 5 6 7 8 [root@h4swift] #vimaccount-server.conf#3个都要改ip 6bind_ip=192.168.1.204 [root@h4swift(keystone_admin)] #swift-ring-builderaccount.builderaddz1-192.168.1.204:6202/zone1100 [root@h4swift(keystone_admin)] #swift-ring-builderaccount.builderaddz2-192.168.1.204:6202/zone2100 [root@h4swift(keystone_admin)] #swift-ring-builderobject.builderaddz1-192.168.1.204:6200/zone1100 [root@h4swift(keystone_admin)] #swift-ring-builderobject.builderaddz2-192.168.1.204:6200/zone2100 [root@h4swift(keystone_admin)] #swift-ring-buildercontainer.builderaddz1-192.168.1.204:6201/zone1100 [root@h4swift(keystone_admin)] #swift-ring-buildercontainer.builderaddz2-192.168.1.204:6201/zone2100 创建ring文件 1 2 3 4 5 [root@h4swift(keystone_admin)] #swift-ring-builderaccount.builderrebalance [root@h4swift(keystone_admin)] #swift-ring-builderobject.builderrebalance [root@h4swift(keystone_admin)] #swift-ring-buildercontainer.builderrebalance [root@h4swift(keystone_admin)] #ls*.gz account.ring.gzcontainer.ring.gzobject.ring.gz 启动服务 1 2 3 4 5 6 [root@h4srv(keystone_admin)] #systemctlstartopenstack-swift-accountopenstack-swift-objectopenstack-swift-container [root@h4srv(keystone_admin)] #systemctlis-activeopenstack-swift-accountopenstack-swift-objectopenstack-swift-container active active active [root@h4srv(keystone_admin)] #systemctlenableopenstack-swift-accountopenstack-swift-objectopenstack-swift-container 代维服务proxy server 1 2 3 4 5 6 7 8 9 10 11 [root@h4swift(keystone_admin)] #vimproxy-server.conf 53[filter:authtoken] 54 paste .filter_factory=keystonemiddleware.auth_token:filter_factory 55admin_tenant_name=services 56admin_user=swift 57admin_password=hequan 58 # 59identity_uri=http: //192 .168.1.204:35357/ 60auth_port=35357 61auth_protocol=http 62 #auth_uri=http://192.168.1.204:5000/ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 [root@h4swift(keystone_admin)] #systemctlstartopenstack-swift-proxy.service [root@h4swift(keystone_admin)] #systemctlenableopenstack-swift-proxy.service [root@h4swift(keystone_admin)] #systemctlstartmemcached.service [root@h4swift(keystone_admin)] #systemctlenablememcached.service [root@h4swift(keystone_admin)] #swiftposth1 [root@h4swift(keystone_admin)] #swiftlist h1 [root@h4swift(keystone_admin)] #swiftuploadh1/etc/hosts 任意一个分区挂了,还是可以正常查看 两个都挂了,就看不到了 本文转自 295631788 51CTO博客,原文链接:http://blog.51cto.com/hequan/1812861,如需转载请自行联系原作者

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

openstack 集成vmware 填坑经验

liberty 以后版本不在支持直连esxi,只支持链接vcenter 记得在esxi防火墙上启用vnc 默认vcenter是https,要么配证书,要么在nova.conf 改insecure=true 要么改源码 oslo_vmware/service.py 里面有关于ssl链接的东东注释掉,后两者我试过了都ok 事实上nova-compute只是一个vcenter的代理,只能对应一个集群单独开一个虚拟机是不是很浪费?怎么办?docker化 ] 本文转自 superbigsea 51CTO博客,原文链接:http://blog.51cto.com/superbigsea/1847216

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

openstack nova 开发 CURL list 记录

CURL list [ -------------------------------- ] 1, delete nova.network curl -v -X DELETE -H 'X-Auth-Token: d7f3d029deb54a7fa354b3ded882150a' -H 'X-Tenant-Id: 842748637c7c419a9af9e787350aca6b' -H 'X-User-Id: ea15fa0ea7034fb89fa991585aca9325' -H "Content-type: application/json" http://0.0.0.0:8774/v2/842748637c7c419a9af9e787350aca6b/vpdc_networks/f35f6419-1a76-4b8a-b985-b2595b49338a | python -mjson.tool 2, create nova.network (vlan100 模式) curl -v -X POST -H 'X-Auth-Token: d3ba55778f4745e4804c2e7689669d49' -H 'X-Tenant-Id: 842748637c7c419a9af9e787350aca6b' -H 'X-User-Id: e745ac0e1c594895991a34bc92c939fc' -H "Content-type: application/json" -d '{"network": { "label": "lan", "vlan": 100, "dns1": "114.114.114.114", "dns2": "8.8.8.8", "vlan_start":100, "security_lan_id":123, "network_size":62, "dhcp_enabled": true }}'http://0.0.0.0:8774/v2/842748637c7c419a9af9e787350aca6b/***_networks 2, create nova.network (FlatDHCPManager 模式) curl -v -X POST -H 'X-Auth-Token: 9fb501eee04842b3bc232bac65d20942' -H 'X-Tenant-Id: 842748637c7c419a9af9e787350aca6b' -H 'X-User-Id: e745ac0e1c594895991a34bc92c939fc' -H "Content-type: application/json" -d '{"network": { "label": "lan", "vlan": 100, "dns1": "114.114.114.114", "dns2": "8.8.8.8", "security_lan_id":123, "network_size":62, "dhcp_enabled": true }}' http://0.0.0.0:8774/v2/842748637c7c419a9af9e787350aca6b/***_networks 3, show nova.network curl -v -X GET -H 'X-Auth-Token: d7f3d029deb54a7fa354b3ded882150a' -H 'X-Tenant-Id: 842748637c7c419a9af9e787350aca6b' -H 'X-User-Id: ea15fa0ea7034fb89fa991585aca9325' -H "Content-type: application/json" http://0.0.0.0:8774/v2/842748637c7c419a9af9e787350aca6b/vpdc_networks/f35f6419-1a76-4b8a-b985-b2595b49338a | python -mjson.tool 4, history_monitor nova.api curl -v -d '{historyControl: {hN:HSCloudNode001, iT:cpu,sT:1377672552.412417, eT:1377673544.507965}}' -i http://127.0.0.1:8774/v2/842748637c7c419a9af9e787350aca6b/wqservers/1/action -X POST -H X-Auth-Project-Id: 842748637c7c419a9af9e787350aca6b -H Accept: application/json -H X-Auth-Token: 6740bb82db184190b5b90ff0d23203b9 -H Content-Type: application/json 4, 获取token ID, curl -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "admin"}}}' -H "Content-type: application/json" http://127.0.0.1:35357/v2.0/tokens | python -m json.tool 5, ioctl nova.compute curl -v -d '{"ioControl": {"instance_name":"instance-0000000d","limit_size":"50MB"}}' -i http://127.0.0.1:8774/v2/842748637c7c419a9af9e787350aca6b/servers/59d83dc5-3cfe-4488-b62e-1d338445457a/action -X POST -H "X-Auth-Project-Id: 842748637c7c419a9af9e787350aca6b" -H "Accept: application/json" -H "X-Auth-Token: f406297155a24bffb9a52aa9da5b3e89" -H "Content-Type: application/json" 本文转自 swq499809608 51CTO博客,原文链接:http://blog.51cto.com/swq499809608/1298829

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

openstack API 开发 - 关于获取token

1, 获取token curl -d '{"auth": {"tenantName": "admin", "passwordCredentials": {"username": "admin", "password": "admin"}}}' -H "Content-type: application/json" http://127.0.0.1:35357/v2.0/tokens | python -m json.tool 2,根据token,发送API请求 curl -v -d '{"migrate2": {"force_hosts":"hostname"}}' -i http://127.0.0.1:8774/v2/{project_id}/servers/{vm_uuid}/action -X POST -H "X-Auth-Project-Id: {project_id}" -H "Accept: application/json" -H "X-Auth-Token: {token_id}" -H "Content-Type: application/json" 3,实例 curl -v -d '{"ioControl": {"instance_name":"instance-0000000d","limit_size":"50MB"}}' -i http://127.0.0.1:8774/v2/842748637c7c419a9af9e787350aca6b/servers/59d83dc5-3cfe-4488-b62e-1d338445457a/action -X POST -H "X-Auth-Project-Id: 842748637c7c419a9af9e787350aca6b" -H "Accept: application/json" -H "X-Auth-Token: f406297155a24bffb9a52aa9da5b3e89" -H "Content-Type: application/json" 本文转自 swq499809608 51CTO博客,原文链接:http://blog.51cto.com/swq499809608/1255933

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

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

用户登录
用户注册