威连通科技股份有限公司(QNAP Systems, Inc.) - 网络存储装置(NAS) - 首页

Language

Support

架设于 QTS 上与 S3 和 OpenStack 兼容的对象储存服务

简介

概述

QNAP面向对象储存服务器(OSS)应用程序能让QNAP Turbo NAS使用现在最普遍使用于存取云端储存装置的S3和OpenStack兼容的储存协议。 OSS应用程序增添了Turbo NAS的存取性能和兼容性,使您能享受专为云端存取所开发的应用程序,包括备份和存盘、内容发布和文件管理等各种应用。随着云端储存不断普及,大多数新的应用程序专为云端储存所设计,您将可以利用您的Turbo NAS来做测试和其他工作。您也可以将您在公有云的数据迁移到Turbo NAS上,而无需重新编写应用程序。

OSS应用程序提供实体且整合的数据存取,让您能使用对象储存协议来存取文件,并结合网络文件共享协议(包括SMB / CIFS、NFS、FTP和WebDAV)来存取物件。例如,您可以使用SMB / CIFS结合区网来存取和管理Turbo NAS上的文件,或是在因特网里使用面向对象储存协议来存取相同的文件。您还可以控制哪些分享的文件夹可以对应到那个storage account或是那些用户有存取账号的权限。藉由整合网络文件存取和面向对象储存,OSS应用程序使得QTS储存服务更加容易与安全。

功能特色

  • 支持S3及OpenStack兼容的对象储存协议
  • 支持大型对象,藉由OpenStack的动态和静态manifest和S3的多重存取方式
  • 支持整合储存装置存取,使其能使用面向对象协议及网络档案协议
  • 支持文件夹共享级别及用户共享等级控制
  • 允许网域内用户存取对象储存装置
  • 支持每个NAS的用户多达20对存取密钥(access key)
  • 支持藉由独立对象储存服务器(stand-alone object storage server)或是QTS Web服务器的虚拟主机来存取
  • 支援container私有和公有的访问控制
  • 支持显示对象储存统计数据于仪表板上
  • 支持管理操作纪录,方便追踪及审查系统设定上的改变

注意: OSS 应用程序只兼容与以x86架构为主的 Turbo NAS 系统并且安装QTS 4.1 以上的操作系统

面向对象储存

数据组织

面向对象储存为一种用来整理数据的新方法,藉由操纵及控制不同的数据集合(称之为对象)的方法。每一个对象,如同一个档案,是一连串由使用者定义的二进制数据。但不同于档案,对象并不是以阶层式的组织方式且不是由它在阶层里的路径来表示。每一个对象与其新增时所设定用来识别的字符串相关联,这个字符串将可用于搜寻此对象。所有的对象都是以水平的架构来排列。所以在文件夹里并不包含其他文件夹且也不会有搬移文件夹的操作。这种组织方式免除了对象间相互依赖,且保存了储存系统的基本功能,即储存和检索。

有两个层级可用来区别对象的命名空间: storage account跟container。每一个storage account代表着计算及记录该次操作的费用计算及产出(同计算储存装置的容量一般)。Container可以在一个storage account里被新增用以提供将对象群组化的基准及提供多个命名空间。如上段所述,在一个container里不会包含其他的container。

资料存取

数据存取所使用的通讯协议为RESTful API, 其为一基于HTTP/HTTPS为主极通用的协定。OSS的对象储存API 能与S3 跟OpenStack 的API相容。S3是Amazon 网页储存服务,也是目前受人喜爱的云端储存服务 (IBM、HP 跟Red Hat也都支持此服务)。OpenStack在提供公有云跟私有云的服务上也是具高度支持的方案。OSS能支持以上两种方案,使其能够被用于许多的应用开发上,且能够让数据在此两种方案下彼此流通。

请参考以下的链接获得更多有关对象储存API的信息:

整合的储存方式

为了能够简化对象储存服务上的管理,OSS对于分别于对象储存及网络档案储存下的储存实体采用如下的对应方式:

  • Storage account 相对应于分享文件夹
  • Container 相对应于分享文件夹里的高阶文件夹
  • 对象相对应于档案

举例来说,对于每一分享文件夹就有一相对应的storage account。且每当您透过SMB/NFS新增一高阶的文件夹时,您也同时在OSS里的storage account新增了一个container。在此整合的储存方式下,对于一个分享的文件夹,我们可使用此文件夹的路径来当作是它相对于在对象储存协议里的对象识别key。如此看来,如果您藉由更名或是藉由网络档案协议移动了一个文件夹,因而改变了一个文件夹的路径,它的对象识别key也将被改变。位于文件系统里的文件夹将会被当作是一个具0字节的对象并以其路径做为它的对象识别key。

您可以选择以对象方式亦或是文件系统方式来管理及存取您的数据。

注意: 目前大部分的客户端程序的设计上都仅适用于一般的S3 跟OpenStack服务,期能有较好的兼容性,也因此用户仅能以ASCII 字符来命名其storage account、container和对象。为了确保OSS能与客户端程序在执行上能够兼容,当您在命名对象储存的物体时 (例如: storage account、container等),请记得使用ASCII字符。

访问控制

对象储存协议可以用识别key来存取,这样可以取代目前所使用的用户名称及密码的认证机制以维持较高的信息安全。为了能有更高的安全保护,在系统默认上,用户并不能直接藉由对象储存协议来存取数据,您需要将在您的Turbo NAS上或是网域内的账户服务器上的使用者新增至OSS的使用者列表里,并为他们新增存取密钥(access key)。

因为对象储存在默认上只能透过网络来存取,所以在预设上,分享的文件夹并不能以对象储存协议来存取。您必须手动设定来允许任何的storage account(分享文件夹)能被OSS使用者所存取。即使是一位用户已经能够藉由网络档案协议(如FTP)来存取一分享文件夹,他也不能存取相对应的storage account,您必须将他加入于OSS允许存取此storage account的名单里。

对于用户所上传的对象,则此位用户会自动被赋予存取的密钥(access key)。但为了系统管理上的简便,文件夹及档案的进阶允许存取窗体(ACLs),将不会被套用在对象储存服务上。

大型物件

OSS支持能与S3兼容的API上的多重上传的方式来存取大型对象,及OpenStack 储存API的大型对象方式。

S3多重上传允许您将一个对象以一组具有不同部分的集合方式上传。当这些部份都被上传之后,数据将会以一个完整的对象方式呈现。

OpenStack大型对象包含两种对象: 分割对象,其包含对象的内容、manifest对象,其将分割的对象链接到逻辑大型对象。当您下载manifest对象,分割对象的内容将会被合并起来然后回复请求。

OSS支持两种OpenStack大型对象 : 静态大型对象(Static Large Object) 和动态大型对象(Dynamic Large Object)。您可以将大型对象分割成小部分来平行上传,使能够缩短上传的时间。如果上传其一分割的程序失败,您可以将此程序重新开始,并不需要将所有的部分重来。

注意: OSS 将每一部分(S3的part或是OpenStack的segment) 视为一个档案来存放。所以您并不能用非对象的储存协议来存取大型对象。

使用OSS应用程序

大纲

OSS 是基于OpenStack Swift项目来开发的,且在QTS使用上对于效能及管理上的简化实行优化。您可以使用如下的步骤来开始存取您的Turbo NAS:

  1. 从QTS App Center来安装OSS 程序
  2. 将Turbo NAS的使用者加入OSS的使用者名单
  3. 将所有的OSS使用者建立存取密钥 (access keys)
  4. 设定storage account的访问权限
  5. 使用S3或是OpenStack 兼容的工具来使用对象储存协议存取数据

安装及启动OSS程序

以使用者账号登入QTS 管理网页,然后到 [App Center] 里找 [Object Storage Server] 然后点击 [新增至QTS],下载及安装完后您将会在QTS的桌面上及主选单上发现这个应用程序的图标,点击 [Object Storage Server] 来启动它的管理接口。

主选单:

在左手边的选项里,您可以切换不同的主选单的网页用户接口。如下我们提供了每一个选项的说明:

仪表板:
(1) 检视对象储存的统计数据
(2) 对象储存服务的启动与停止
(3) 检视服务端点的URL

使用者:
(1) 管理谁具有使用对象储存服务来存取数据的权限
(2) 管理使用者存取密钥 (access keys)

Storage account:
(1) 管理每一个storage account可以被哪些使用者所存取
(2) 建立与删除storage account
(3) 检视storage account的空间使用

Container:
(1) 建立与删除container
(2) 启用匿名存取
(3) 检视container的空间使用

服务端点:
(1) 选择使用内建的服务器或是QTS 网络服务器
(2) 设定内建服务器的服务埠
(3) 设定服务的虚拟主机名

仪表板

OSS 提供了一仪表板用来显示统计数据及对象储存服务的端点。您可以在此启动或是停止服务。这里提供了前一小时、前一天或是前一周的数据。因为每一个storage account都可以对应到一个分享文件夹(且其高阶子文件夹也可对应到一个container),所以在您存取对象之前您都能看到已经有数据产生了。于对象储存API中所使用到的HTTP的GET, HEAD, OPTION, POST, PUT, and DELETE操作方法及所传输的数据字节将会被统计及显示在此仪表板上。

使用者管理

点击[Add]来新增一用户来存取数据。您可以从Tubo NAS的使用者名单来新增使用者,或是选择网域内的使用者,如果您的Turbo NAS是使用AD 或是LDAP服务器作为账号验证。您也可以删除在此列表上的使用者。

当您加入一使用者之后,他就可以用他的用户账号来取得对象储存服务。但是使用存取密钥(access key)还是比较安全的作法。

注意: 当您在QTS上的Control Panel里删除一个使用者,在OSS里的账号还保存着,您必须在这里一并删去。

存取密钥(access key)管理

您可以替您新增的使用者设定存取密钥。在您的程序里使用密钥作为身分验证来存取对象。

OSS 提供每一个使用者多重的密钥。如果某些密钥被盗取了,您可以将之删除,这样做并不会影响您的程序(如果其使用其他的密钥)。为了安全考虑,通常密钥需要定时的被更换。

点击[Property]来检视存取密钥的详细信息。对于OpenStack,服务端点是认证服务的URL; 但对于S3来说,服务端点是其对象储存服务的URL。如果是使用OpenStack 协议来存取数据,您应该用用户名称跟API的key, 但是如是用S3协议,您应该使用存取密钥(access key)和密钥(secret key).

因对象储存具有多重用户共享的特性,您必须要在OpenStack的使用者名称及您的S3存取密钥(access key)指定您的storage account。举例来说,如果您的OSS key ID是 "bB9MSEIrXEYFGcxXdW7f"而您想要存取"cloudvault"这个storage account,您的OpenStack 使用者名称或是S3 存取密钥将会是"cloudvault:bB9MSEIrXEYFGcxXdW7f"。请注意您将只能存取"cloudvault"这个storage account。

Storage account管理

点击在OSS主选单的[Storage Account]来管理storage account。您将会发现您所有分享的文件夹被列为storage account。您也可以点击[Create]来新增一storage account,如此也会以预设的分享设定来建立一分享文件夹。您也可以在此点击[删除]来删除storage account,这样做将会删除所对应的分享文件夹。

注意: 有一些预设的分享文件夹 (home, homes, USB, 跟TMBackup), 并不能以storage account来被存取。仪表板上的统计功能也会排除这些文件夹。

点击动作字段的[Permission]来设定storage account的访问权限。您也可以新增使用者。您只能从OSS使用者名单内加入。当您允许一使用者存取storage account,这个使用者所拥有的存取密钥(access key)将可被用来存取此storage account。

对象储存协议提供了一API用来取得container及storage account的使用数据。这可能会影响整体的系统效能,您可以选择特定的时间/日期来执行此以数据的统计运算。

Container管理

点击在OSS主选单的[Container]来管理container。container是在分享文件夹里的高阶文件夹。您可以点选一storage account来显示所拥有的container,也可以新增或是删除container。

注意: 有一些高阶的文件夹并不能如container般地来存取,如: @Recycle、tmp, async_pending还有隐藏档。仪表板的统计资料也会排除这些档案。

如果是公用的container将会允许匿名存取其所有的对象。如果您想要让别人可以下载许多档案或是使用其container里的档案来架设网站,您可以这么做。您可以点击一个container的[Permission]来将其权限更改成公用。一个公用的container的URL:
"http://nas_ip_address:oss_service_port/v1/AUTH_storage_account_name/file_path".

服务端点

点击在OSS主选单的[Service endpoints]来管理服务端点。 OSS 提供两种数据存取的服务,一是内建的服务器,另一种是以QTS网站服务提供的虚拟主机方式。如果是使用OSS内建的服务器您需要设定端口,但是它不支持HTTPS。如果您是使用QTS网站服务器,您需要设定虚拟主机的名称,然后您的对象存取服务所使用的埠号将会是QTS网站服务的埠号,它也可以支持HTTPS。如果您使用虚拟主机名,您的对象存取客户端程序只能藉由FQDN来使用对象储存的服务。


问题回报

OSS 应用程序会自动产生问题记录方便以后的修复。请点击位于OSS右上方的[i]按钮。将会有一个小窗口显示版本信息及[Generate debug report]按钮。按此按钮来下载问题记录文件并送回至QNAP 客户服务。

数据保护

OSS 程序并不会复制对象,但您可以将对象存放于RAID硬盘中。RAID比复制的方式提供了更好的储存效能。您也可以使用RTRR或是rsync来复制所有的对象到远程的Turbo NAS 或是使用CloudBackup NAS Apps来备份所有的对象于公有云上。您也可以使用QNAP所提供的硬盘加密技术来安全地保存您的对象。

存取对象储存

使用CloudBerry 浏览器

Cloudberry实验室提供了一系列的桌面应用程序用于各种云端储存环境中来存取和管理数据。请参阅下面的OSS服务连接设置。您可以访问 http://www.cloudberrylab.com/ 了解更多信息。

  1. 点击[File]->[S3 Compatible]->[S3-Compatible]来开启联机设定窗口。
  2. 输入您的Turbo NAS的IP位置或是FQDN还有端口号于"Service Point",并且输入存取密钥(access key)跟密钥(secret key)。如果您使用虚拟主机,您需要先设定DNS或是更改您的计算机的hosts 档案来将虚拟主机的名称对应到Turbo NAS的IP 位置。如果您选择使用SSL来加密数据的传输,且您的Turbo NAS 使用自行核发的SSL凭证,系统将会警告您。
  3. 点击[Test Connection]此按钮来确保此设置是正确的。点击[OK] 来关闭窗口。您将可以开始存取您的数据。

OpenStack Storage浏览器

  1. 点击[File]->[OpenStack]来开启联机设置窗口。
  2. 输入OSS OpenStack 的服务端点的URL,并且输入IP 位置或是Turbo NAS的FQDN还有对象储存所需的端口号于"Authentication Service",也请一并输入使用者名称还有API key. 如果您使用虚拟主机,您需要先设定DNS或是更改您的计算机的hosts 档案来将虚拟主机的名称对应到Turbo NAS的IP 位置。如果您选择使用SSL来加密数据的传输,且您的Turbo NAS 使用自行核发SSL凭证,系统将会警告您。请不要启用"Use Keystone authentication"。
  3. 点击[Test Connection]此按钮来确保此设置是正确的。点击[OK] 来关闭窗口。您将可以开始存取您的数据。

使用QNAP CloudBackup 应用程序

QNAP 提供了CloudBackup应用程序来将您的Turbo NAS上的数据备份至多种不同的云端储存服务上,当然也包括S3跟OpenStack。请至QTS App Center来下载这些程序并遵循程序的使用摘要来开始使用对象储存协议来备份您的数据。

更多的软件工具

许多程序都支持S3跟OpenStack,如下所列:

开发工具

您可以在网络上找到更多开发S3跟OpenStack程序的开放原始码:

效能评估

您可以使用以下的工具来评估您的Turbo NAS上的对象储存服务的效能:

支援的APIs

OSS支持S3和OpenStack API的基本功能。但是,因为OSS整合储存允许同时使用档案和对象存取的方式,所以API的行为会略有不同。使用OSS之前,请进行测试。

OpenStack storage

  • Get Account Metadata
  • Swift ACLs
  • List Containers
  • Delete Container
  • Create Container
  • Get Container Metadata
  • Update Container Metadata
  • Delete Container Metadata
  • List Objects
  • Create Object (max object size: 1TB)
  • Create Large Object (support SLO and DLO)
  • Recommend segment size: 5GB
  • Delete Object (support bulk delete)
  • Get Object
  • Copy Object
  • Get Object Metadata
  • Update Object Metadata
  • CORS
  • TempURL
  • Form POST

S3

  • List Buckets
  • Delete Bucket
  • Create Bucket
  • Get Bucket Info (HEAD)
  • Put Object
  • Delete Object
  • Delete Multiple Object
  • Get Object
  • Get Object Info (HEAD)
  • Copy Object
  • Multipart Uploads
发布日期: 2014-11-28
您觉得这篇文章对您有帮助吗?
谢谢您,我们已经收到您的意见。
谢谢您,我们已经收到您的意见。若有任何问题,欢迎来信 support@qnap.com 。