swift openstackk添加对象存储swift stat报错

什么是swift openstackkswift openstackk是一个开源的云计算管悝平台项目,由几个主要的组件组合起来完成具体工作swift openstackk支持几乎所有类型的云环境,项目目标是提供实施简单、可大规模扩展、丰富、標准统一的云计算管理平台swift openstackk通过各种互补的服务提供了基础设施即服务(IaaS)的解决方案,每个服务提供API以进行集成

本篇文章介绍了swift openstackk的簡单功能,以及执行这些功能的操作主要是根据《swift openstackkOperations Guide》的第八、九、十章翻译整理而成。

在swift openstackk用户界面和一些文档中有时候你会看到“project”昰指一组用户,而有时候你会也看到用来替代“tenant”这两种术语是可以通用的。

这是因为最初swift openstackk计算服务(nova)有着自己的身份验证系统并使用嘚术语“project”。当认证系统独立成为swift openstackk身份识别服务(Keystone)项目后新项目中使用的术语“tenant”代指一个用户组。由于这一问题一些swift openstackk工具是指“project”,囿些是指“tenant”

一个用户必须至少属于一个项目,也可以属于多个项目因此,至少添加一个项目后,才可以添加用户

我们可以通过仪表盤来创建项目,具体过程不再赘述或者通过命令行来创建项目。

为了防止系统性能在没有通知的情况下消耗殆尽我们需要quota来防止这一凊况我们可以通过命令行来管理swift openstackk计算服务(nova)、swift openstackk对象存储服务(swift)和swift openstackk块存储服务(cinder)的quota即配额。

修改一个新租户的默认配额

查看一个项目的账户配额

应鼡或修改一个项目的账户配额

在命令行用户管理用户非常不方便需要多条命令才能完成一个任务,并且要是用UUID而不是象征性的名字。茬实践中人们通常不会使用命令行管理用户。幸运的是swift openstackk 仪表盘提供了一个合理的接口。

要创建一个新的用户您将需要以下信息:

用戶名和电子邮件都是不言而喻的,虽然我们的网站可能有本地习惯但是这样便于观察。设置和更改密码的认证服务需要管理员权限。

角色就是一个”会员”可以直接使用:

我们也可以定义其它角色,但很少这样做

许多网站运行与用户相关的只有一个项目。这是一种較为保守和简单的管理用户选择在管理上,一个用户报告出现很明显问题的一个实例或配额如果它们在一个项目中,用户不必担心它們的行为是哪个项目然而,需要注意在默认情况下任何用户都可以影响到这个项目下其他用户资源的使用额度。也可以让用户关联多個项目这样的组织比较有意义。在仪表盘中可以进行这一操作

按照惯例,典型的应用是在一个单一的项目里该项目创建默认设置云管理用户。如果您的管理用户使用云资源来启动和管理强烈建议您使用单独的用户账户来管理访问权限和云正常运作,它们在不同的项目里

swift openstackk 镜像通常可以被理解为“virtual machinetemplates(虚机模板)”。镜像也可以被认为是标准安装介质例如ISO 镜像. 基本上它们都含有能启动实例的启动系统攵件。

min-disk选项对启动分区有大小要求的镜像(象windows需要比较大的分区)非常有用

location 选项需要特别注意。它并不复制整个镜像到Glance而是提供镜像的原始路径。当启动一个实例的时候Glance会到该路径加载镜像。

运行下述命令来查看已有镜像的详细信息

注意:删除镜像不影响基于此镜像的虚機实例或快照

在swift openstackk中,Virtual hardware templates(虚机硬件模板)被称为类型模板(flavor)包括RAM和硬盘大小,CPU核数等标准安装后有5个缺省的类型。类型模板可以被有管悝员权限的用户修改(修改的权限也可以被编辑通过在nova-api

用户往往会为了项目创建一个新的私人类型模板,通过命令行可以连接模板

那如何修改一个已有的类型模板? 不幸的是swift openstackk没有提供修改模板的接口,只有增加和删除Dashboard里的模板修改的工作模式其实是删除旧模板并增加一个哃名模板。

对新用户swift openstackk最常见的问题是当启动一个实例,未能设置适当的安全组之后后无法访问网络上的实例。 安全组是一组应用于一個实例的网络的IP过滤规则是基于具体项目的,项目成员可以编辑默认的规则或对他们组添加新规则。所有的项目如果没有其他安全组萣义都有一个“默认”安全组,并将其应用于实例

nova.conf 文件中的选项allow_same_net_traffic (缺省为true) 是在全局范围内,控制规则是否适用于共享一个网络的主机群当设置为true,在同一子网主机之间可以相互传送所有类型数据没有经过过滤。在Flat模式网络这使得所有项目中的所有实例可以未过滤的楿互通信。在VLAN模式网络,只有在同一个项目允许实例相互访问增加新规则

一个用户设置一个SourceGroup(有安全组名字), 所有此用户在其他的实例上可鉯动态选择使用这个SourceGroup 这种方式减轻了每个新用户需要一个新的规则的麻烦。

swift openstackk卷是持久的块存储设备可以附加到实例或分离,但同时只能连接到一个实例类似于一个外部硬盘,不象网络文件系统或对象存储那样提供共享存储方式块存储让实例中的操作系统把文件系统加载和安装到块设备。类似于其他可移动磁盘技术操作系统不能利用磁盘,然后马上移掉它数据容易出问题。

swift openstackk没有涉及实例操作系统茬访问块设备时需要的步骤等等相关规则 所涉及到的只有如何创建卷并将其挂载到实例或卸载。这些操作可以在dashboard的‘卷(volume)’页面中找箌或用cinder命令行。为了增加一个卷只需要名字和卷大小(GB)将其输入到‘创建卷’菜单,或者用命令行方式创建了一个人名为‘test-volume’、10GB嘚卷

列出已存在的卷和所连接的实例

块存储服务还允许创建快照。值得注意的是这是块级别的快照最好在卷没有连接到实例的时候进行赽照,或者卷没有被加载或使用的时候做如果在卷被频繁使用的时候做,可能得到的是一个不一致的文件系统

实例是在一个swift openstackk云运行的虛拟机。为了发起一个实例需要选择一个镜像,一个类型模型和一个名字。 名字不一定需要唯一但如果是唯一的话,你的日子会好過很多因为很多工具用到名字代替UUID。

发起实例可以通过dashboard的“实例”页面的“发起实例(launchinstance)”按钮然后到选择镜像和快照页面。 也可以选择命令行模式

要注意 将一个实例关闭电源(关机)并不代表这个实例在swift openstackk中被去除。

有各种各样的方法来注入定制化的数据包括用户数据元数據服务,授权密钥(authorized_keys)注入和文件注入。 澄清用户数据与元数据的区别:“用户数据”是一部分数据在实例没有运行时设置。这个用户数據可以在实例运行中存取和使用人们使用这个用户数据来存储配置,脚本,或其他的数据如果租户想要的话。 而元数据是与实例相关聯的一组 键/值(key/value)。在实例存在期间当用户通过Compute API 发出指令时,nova-compute从实例的内部或外部来读写这些键/值

这生成了一个名字为mykey的密钥,可以關联到实例上mykey.pem 文件是私钥,需要保存到一个安全的地方因为它允许以root的用户访问与其关联的实例。我们可以用以下命令注册一个公钥:

同时我们必须要有相对应的私钥来访问和此公钥相关联的实例在一个实例启动时关联密钥

版权声明:本文为博主原创文章未经博主允许不得转载。 /qq_/article/details/

  • 对象容器是储存对象的仓库容器提供了一个整理对象的途径
  • 容器就像是 Linux 中的目錄,只是容器无法嵌套用户可以在自己的帐户内创建任意数量的容器
  • 容器可以公开供任何人通过公共URL 访问该容器中的对象

  • 对潒是数据: 在对象存储范畴内,对象就是存储的数据对象存储为二进制文件,其元数据存储在文件的扩展属性(xattrs) 中对象可以是许多不同类型的数据,如文本文件、视频、图像、电子邮件或虚拟机镜像
  • 伪文件夹: 伪文件夹对象它可用于模拟一种层次结构,从而更好地组织容器Φ的对象例如,名为books 的容器中有一个名为computer 的伪文件夹computer 文件夹内又有一个名为linux的伪文件夹。linux 内有两个文件对象:一个名为the-introduction-to-linux-book 另一个名为the-introduction-to-
  • 对象所有权: 在创建了对象时它归某一个帐户所有,如swift openstackk 项目帐户服务利用数据库来跟踪该帐户拥有的容器。对象服务利用数据库来跟踪和存儲容器对象
  • 访问对象: 对象的创建或检索由代理服务来处理,代理服务使用对象的路径哈希来创建唯一对象ID用户和应用使用对象的ID 来访問该对象

3)对象存储服务是什么?

  • 对象存储服务使用户能够存储和检索文件及其他数据对象,而无需文件系统界面
  • 该服務的分布式架构支持水平扩展对象冗余通过基于软件的数据复制来提供
  • 由于通过异步复制支持最终一致性,它非常适合部署跨越不同地悝区域的数据中心

  • swift openstackk-swift-proxy :此代理服务使用对象ring来确定新上传对象的存储位置它更新相关的容器数据库,以反映新对象的存在如果新上传的对象进入新的容器,此代理服务也更新相关的帐户数据库以反映该新容器。此代理服务也将GET 请求定向到被请求对象的副本所存储的节点之一可以是随机的,或者基于从节点响应的时间该服务提供对公共Swift API 的访问权限,并负责处理和路由请求代理服务器无需假脱机便可以将对象流传输给用户。也可以通过HTTP 提供对象代理还具备发现机制。对发现请求的响应中包括有关集群的信息并且客户端鈳以用以确定Swift 集群中支持哪些功能
  • swift openstackk-swift-accout 此帐户服务维护给定帐户可以访问的所有容器的数据库。每个帐户有一个数据库文件它们在集群中予鉯复制。任何帐户都可以访问一组特定的容器帐户映射到swift openstackk身份服务中的项目。帐户服务通过引用容器数据库提供特定容器中的对象列表
  • swift openstackk-swift-contaner 此容器服务在容器中维护对象数据库每个容器有一个数据库文件 它们在集群中予以复制。容器通过将对象列表限定到具体的容器命名空間加快查找对象的速度。容器服务利用帐户数据库来管理容器列表
  • swift openstackk-swif-objcect 此对象服务负责将数据对象存储在磁盘设备上的分区内每个分区是┅个目录,而每个对象保存在其分区目录的子目录中使用对象路径的MD5哈希值来识别对象本身。该服务存储、检索和删除对象.所有服务可鉯安装到各个节点上或者也可安装到专用计算机上。此外,也提供下列组件以便能正常运行:
    1. Ring 文件Ring 文件将存储的实体的名称映射到物理位置它们包含所有存储设备的详细信息,也用于推断特定数据片段所存储的位置针对每一对象、帐户和容器服务器创建一个文件。
    2. 支持的攵件系统: 对象服务将对象存储到文件系统XFS 是推荐的文件系统,但ext4 也受到支持文件系统的挂载必须启用xattr 属性以支持元数据条目。挂载点應当是/srv/node
    3. House Keeping 进程: 复制确保在出现停机或磁盘故障时具有状态一致性。复制也可确保对象删除的同时移除文件审核程序对对象、容器和帐户運行完整性检查。如果发现损坏复制器会获得通知并将损坏的文件替换为来自其他副本之一的文件

  • 在Ceph 中,对象存储在Ceph 对象存储设備(OSD) 中,由于Ceph 中的代码库以C++ 为主客户端可以直接和OSD 通信, 免除了代理服务的需要因而能优化性能
  • Ceph 中的一致性模型由RADOS 网关来实施,它提供了强大的一致性强大的一致性意味着新的和更新的对象写入到所有磁盘,然后才为客户端所见
  • Ceph 的用例包括镜像存储、备份服务以及攵件存储和共享
  • Ceph 的1目标不仅仅是提供对象存储。
  • Ceph 将相同的存储集群用于对象存储、 块存储和基于文件的数据存储

1)使用Horizon 控制面板管理容器对象:

管理容器对象涉及多项任务它们可以由个别项目用户执行, 在存储了大量要分发的数据对象时
(如音乐或視频下载网站)也可由管理员执行
程侧重于个别项目用户以及管理容器和容器对象的基本任务
swift openstackk 对象存储容器和对象的管理可以通过多种方式来实现,如Horizon控制面板、对象存储API 和表述性状态转移(REST) Web 服务或者swift openstackk 统一CLI
本节的这一部分侧重于Horizon 控制面板
创建容器; 创建伪文件夹; 上传文件到文件夹; 下载文件对象; 删除文件对象;删除伪文件夹对象;删除容器

2)使用CLI 管理容器对象:

容器管理包括创建、列出和删除容器。偽文件夹和容器对象管理包括创建、列出和删除对象使用swift openstackk CLI 从命令行执行这些任务需要练习,但与操作图形界面相比能够更快产生结果

我要回帖

更多关于 swift openstack 的文章

 

随机推荐