[openstack swift]4 悬而未决的问题和几点考虑

[准备篇1]VMWare搭建Openstack——Ubuntu14.04操作系统安装 最近一直在搞OpenStack,从0开始,以前完全没有接触过,因为有一些项目需求,也包括以前同事有一定的研究基础,比照着现有的文档进行搭建,我这个人比较怪,对新东西不是先看原理,而是喜欢先看到实体再去理解原理,所以本系列文章不讲原理,简单粗暴的介绍怎么搭建OpenStack。 由于OpenStack至少需要两台服务器,也就是需要两个虚拟机,可能对你的测试环境的硬件有一些要求:例如我的笔记 阅读详情

******************转载请注明出处!**********

最后更新 : 2011年8月3日20:51:36

4 悬而未决的问题和几点考虑

4.1如何避免SDC?

SDC全称Silent Data Corruption。正如AMD给出的解释:“SDC occurs when incorrect data is delivered by a computing system to the user without any error being logged”,SDC发生往往不会被记录,也没有任何异常产生。

现代的文件系统在设计之初都考虑到了数据完整性检查,例如GFS、ZFS,btrfs,ext4等等。

比如普遍都会采用计算checksum(校验和),异地存储,传输后检验的方法。

但是swift官方推荐的XFS[1][2]并没有类似的解决方法(注:待考证),swift中也没有对数据完整性进行检查。(注:swift中的auditor只是做副本的一致性检查,而副本是否拷贝完整无从校验。)

当然,数据完整性和业务模型有一定关联,若干bit的错误数据对一些业务来说也许是可以接受的。

 

4.2memcache的考虑?

OpenStack Object Storage Administrator Manual中提到,默认下只有查询authtoken,container/account时会用到memcache。Manual建议其它server上也使用缓存服务。

缓存是内嵌在swift中的,这无可非议。但大并发下,swift的缓存机制可能并不能提升多少命中率。虽然hash算法均衡了负载,但也会存在一定几率的“雪崩”情况。即:缓存大面积失效,压力转向后端存储设备,最终导致后端连锁性无法响应。

实际应用中,cache层独立出来做一层缓冲,可以有效降低后端压力。类似Haystack的Haystack Cache[3]也许可以提供一些借鉴。

swift的策略规避了对缓存一致性的要求,因此这里不做考虑。

 

4.3replication粒度或者策略?

swift并不存在数据append(附加)的情况,因此没有[4]中“转移中提供服务”的通用问题。swift读到过期数据似乎影响不大。

但当故障发生时(网络拥塞,存储结点宕机),需要考虑replication的粒度。即副本拷贝时,副本所在storage node有很大压力(特别是副本较大、数量多、网络不通畅时,会有很长的传输时间)。

swift中是以partition作为replication的基本单位,并限制在一定时间内(默认为一个小时)只允许移动一个partition的副本。这样的设计有基于数据安全方面的考虑,但效率可能会不高(副本大、网络拥塞时会增加数据风险,提升读出旧数据的可能性)。

可以借鉴[5]5.4节做一个折中,即在一定时长内使用单副本replication,超出时长如果仍未完成副本拷贝的,其他副本所在的partition和空闲storage node参与进来进行分流。这可能会造成一些额外的性能开销。

提高副本数也是一个不错的选择,如facebook做4*3的备份([3]4.1.2,即一份数据存12份)。

因此replication的粒度可能需要在效率、性能、成本上做平衡。

 

4.4 后端db的考量

gholt是swift的主要开发者之一。他提到swift源自MogileFS——一个perl实现的存储引擎。最初的设计中规避了文件的查询——但需要一种管理机制。Cassandra几乎就要作为swift object的管理策略了,但最终还是因为自身的原因而不得不放弃[6]。

sqlite现在作为swift底层备份管理的db。[7]中提到,sqlite在高并发下会有写丢失的情况,并最终转向mysql。swift现在或将来提供很多机制优化后端性能,比如sqlite的WAL([8], write-ahead-logging journal mode)。但目前缺少有力的测试数据和实践经验。

swift中是否也会因为高并发而影响sqlite的写丢失?目前我没有能力或条件去做证实,期待巨牛之人可以解答之。

 

4.5部署中需要注意的事情

OpenStack Object Storage AdministratorManual4.6中已穷尽考虑,这里只提出几个相对重要的方面。

系统时间

应该统一时间,系统中要有专用的NTP服务器。时间对一些服务来说是很重要的,比如object存储的名字是object名字hash之后连接一个操作的时间戳。机群内部的时间不应该差异太大,否则,很有可能会出现一些诡异的事情。:)

 

多核的利用

计算机多核时代已经来临,因此需要充分利用有限的cpu资源。manual中建议proxy node设置的worker数是cpu总核数的2倍。比如双4核cpu,worker设置为16。而storage node上的服务较多,需要根据实际情况酌情考虑。

 

文件系统

manual中推荐使用XFS,但不推荐使用RAID。也许是swift出于简单设计的原因吧。

[3]中的三层结构有一定的借鉴意义。笔者更倾向于把文件系统单独拿出来做一层结构。自己设计一层通用fs或者使用更可靠的类GFS系统。

 

日志的配置

swift的日志部分从1.2之后更改较多,或者说变的更加清晰、强大。比如说可以定制输出,一些异常也不会莫名其妙的被系统吞掉。需要做线上数据分析或者数据挖掘的可以参考相关文档。

 


 

写在结尾:《swift实战基础》已写完计划部分。整理后的pdf版本在不久后会共享出来。欢迎交流指正。

这之后开始从代码层面做介绍,文章结构请参考 swift实战_纲要。

 


[1] Scalability in the XFS File System 96年xfs的设计论文

[2 ]http://xfs.org/index.php/Main_Pagexfs源码中也没有对数据完整性有任何考虑

[3] Finding a needle in Haystack:Facebook’s photo storage

[4] http://code.taobao.org/trac/tair/wiki/intro淘宝tail引擎的存储策略

[5] Ceph: A Scale,High-Performance Distributed FileSystem

[6] http://tlohg.com/the-story-of-swift gholt的博客,讲述swift的设计变迁

    此文章链接过期,原文发布日期为2011-4-1,现链接失效。

[7] 篱笆社区的架构变迁,《程序员》3月刊p106

[8] https://blueprints.launchpad.net/swift/+spec/cactus-sqlite-walswift设计蓝本,这里是swift未来特性的雏形


kolla-Ansible部署Openstack2024.1(含cinder、swift安装) kolla-Ansible部署Openstack2024.1,并安装了cinder、swift,步骤详细,希望对大家的工作和学习有所帮助。 阅读详情

相关推荐

OPENSTACK简介OpenStack介绍个人笔记

IaaS:基础设施即服务PaaS:平台即服务SaaS:软件即服务云计算是一个服务,openstack和虚拟化是实现这个服务的手段之一;2.openstack是一个云平台,相当于openstack是一个超市,超市里有产品,而产品并不是超市生产的,openstack是没有资源的,是需要对接资源的,而这些资源指的是虚拟化资源或物理资源。基础管理服务包含Keystone、Glance、Nova、Neutron、Horizon五个服务 扩展管理服务包含Cinder、Swift、Trove、Heat、Centimete

3322855165 1万+

OpenStack系列第二篇:深入浅出了解OpenStack架构与优劣势

在当今的云计算领域,OpenStack作为一个开源的云平台软件,被广泛应用于构建私有云和公有云。本文将为初学者提供一个深入浅出的讲解,帮助你理解OpenStack的工作原理、核心组件以及它在企业中的应用场景,并对比其与公有云和VMware的优势和劣势。OpenStack是一个开源的云计算平台,它通过模块化的方式管理和控制大规模的计算、存储和网络资源。

weixin_41004518的博客 2025

在ubuntu上安装openstack的swift组件-installing openstack object storage

这几天正在自己搭建一个swift的环境。看了一些资料,结合自己的实践,写下了它: 1.物理环境说明: Linux系统版本:Ubuntu Server 12.04 Proxy Server IP: 10.214.0.181 Storage Server One: 10.214.0.179 Storage Server Two: 10.214.0.180 Storage S

兵临城下 6097

OpenStack优缺点并与CloudStack的比较

OpenStack优缺点并与CloudStack的比较

XMYX-0 3272

Openstack swift安装部署

块存储&文件存储&对象存储

仇晗的专栏 2809

OpenStack中glance对接swift

OpenStack中glance对接swift

jks212454的博客 1万+

OpenStack之Swift:容器服务器(Container Server)源码分析

2.1.Xattr介绍 官方描述: Extended attributes extend the basic attributesof files and directories in the file system. They are stored as name:data pairsassociated with file system objects (files, directorie

liuhong的专栏 4747

解密Android相机框架:从HAL到应用层的全链路解析

本文深入解析Android相机框架的全链路架构,从应用层到硬件抽象层(HAL)再到驱动层,详细介绍了CamX-CHI架构的设计哲学与实战应用。通过HAL3接口、V4L2交互机制及Camera2 API的最佳实践,帮助开发者优化相机性能,解决多摄切换、预览卡顿等常见问题,提升成像效率与稳定性。

weixin_29238147的博客 408

OpenStack之Swift总结

1.Swift概述 1.1 Swift在整个openstack项目中所处的位置 Swift属于openstack项目里面的一个负责数据对象存储的一个项目,由Rackspace公司开发。它在整个openstack项目中所处的位置如下:   通过上图可以看出,openstack 通过计算项目,然后通过镜像服务找到存储的数据。 1.2    Swift项目的内部概述 在Swift中会涉及到P

liuhong的专栏 3615

Xilinx Chip2Chip IP核实战:Aurora PHY通信配置与仿真避坑指南

本文深入解析Xilinx Chip2Chip IP核与Aurora PHY的通信配置与仿真优化,提供实战避坑指南。通过AXI协议转换桥实现FPGA间高速数据传输,详细讲解Aurora PHY参数设置、仿真加速技巧及常见问题解决方案,帮助工程师快速部署稳定高效的芯片间通信系统。

g5h6i7j的博客 1006

数字电路基础(CMOS电路、低功耗方法)

文章目录一、CMOS器件1.1.CMOS反相器1.2. CMOS与非门1.3.CMOS或非门1.4 CMOS与门和CMOS或门二、CMOS电路参数——功耗 一、CMOS器件 1.1.CMOS反相器 CMOS反相器实现非门功能,由一个PMOS管和一个NMOS管组成,其逻辑电路图如下: 其真值表如下: In PMOS NMOS Out 0 √ 导通 ×关闭 1 1 ×关闭 √...

Mr.翟的博客 1万+

openstack essex版安装(4)——swift

swift是openstack的存储项目。这里我用了2台机子 Swift Host:swift1 ip:192.168.0.110 Proxy-server, account-server, container-server, object-server Host:swift2 ip:192.168.0.111 accou

nocturne1210的专栏 2602

【23】OpenCV C++实战篇——张正友相机标定【相机标定原理、相机标定流程、标定结果评价、图像畸变矫正】

R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。R是3×3的正交单位矩阵(即旋转矩阵),t为平移向量,R、t与摄像机无关,所以称这两个参数为摄像机的外参数(extrinsicparameter),可以理解为两个坐标原点之间的距离,因其受x,y,z三个方向上的分量共同控制,所以其具有三个自由度。

程序员,他们想的是什么?他们想的永远都是技术,他们崇尚的也永远都是技术。 4479

OpenStack swift安装

由于实验室项目需要云存储系统,因此在实验室服务器上搭建一个基于OpenStack swift的云存储系统。 最开始按照官方网站上介绍的方法,使用SAIO方式安装http://docs.openstack.org/developer/swift/development_saio.html,但是中间经常安装到最后,测试的时候,认证不成功,而且安装的过程比较繁琐,于是采用了git的安装方式git

追寻梦想的青春 1934

组合预测 | Python实现LSTM-XGBoost长短期记忆网络组合极限梯度提升树股票价格预测

组合预测 | Python实现LSTM-XGBoost长短期记忆网络和极限梯度提升树股票价格预测

机器学习之心的博客,关注并私信文章链接,获取对应文章源码和数据。 2353

CorelDraw插件开发-Cdr插件-CPG插件-GMS插件-安装位置

文章目录1.gms格式插件2.cpg格式插件3.作者答疑   CorelDraw软件是一款使用非常广泛的矢量图形软件,系统本身提供了非常便利的二次开发环境,制作插件的格式有两种,一种是gms格式的脚本插件,另外一种是cpg格式dll插件。 1.gms格式插件   gms格式插件是使用微软的 VBA 技术,编写和调试都比较方便,从9的版本开始支持。   安装:把gms文件复制到程序所安装的目录 gms 下,一般在C:\Program Files\Corel\CorelDRAW Graphics Suite 1

插件开发 2750

openstack queens glance对接swift后端存储

操作系统使用centos7.5 1804 openstack 版本queens 修改/etc/glance/glance-api.conf [glance_store] #stores = file,http,swift #default_store = file #filesystem_store_datadir = /var/lib/glance/images/ #stores = glance.store.swift.Store default_store=swift #修改后端存储使用swift s

skyroach 2651

智能车图像处理5-入门级分析4 ---环岛的状态机与补线

PS :入门级文章适合新手,如果已经有基础可以去看进阶篇文章。

taiyuezyh的博客 8228

openstack swift页面安装

参考网址: https://github.com/cschwede/django-swiftbrowser http://docs.openstack.org/mitaka/install-guide-ubuntu/swift-controller-install.html 1.安装swiftBrowser root@controller:/home# pip install django-sw

tyutpanda的专栏 1235

OpenClaw Skill 开发全攻略|2026 最新机制 + 文件处理实操,看完直接落地开发

很多新手刚接触时,会把 Skill 想得很复杂,其实大可不必。OpenClaw 中的每个 Skill,本质就是一套“能力描述 + 执行逻辑”的组合包,简单说就是“告诉 AI 你能做什么、怎么做,它就会调用你”,核心特征可以总结为这几点,好记又实用:核心载体:以文件夹为单位,不管多简单的 Skill,文件夹里都必须有 SKILL.md 文件——这是 AI 识别技能的唯一依据,少了它,再完善的代码也没用;

haolove527的专栏 7025

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

curl操作openstack swift

curl操作openstack swift 1、简介 在Linux中curl是一个利用URL规则在命令行下工作的文件传输工具,可以说是一款很强大的http命令行工具。 首先介绍一下我们操作openstack swift API所需要的curl 命令参数。 -i 把HTTP的请求结果显示在标准输出设备上 -X(大写) 定义HTTP的操作类型(如GET、HEAD、PUT、POST、D...

大白菜的博客 1092

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

十一、openstack云平台搭建Swift

将account.ring.gz、container.ring.gz、 object.ring.gz复制到所有节点(包括存储节点和控制节点)的 /etc/swift目录下。复制account-server、container-server和object-server的配置文件。把 swift.conf文件复制到 所有节点(包括存储节点和控制节点)的/etc/swift目录。修改配置文件/etc/swift/proxy-server.conf。4)在控制节点和其它代理节点运行。配置syncd(计算节点ip)

m0_74100112的博客 1366

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

OpenStack之Swift操作指南

swift-ring-builder account.builder create 18 3 1 swift-ring-builder container.builder create 18 3 1 swift-ring-builder object.builder create 18 3 1 swift-ring-builder account.builder add z1-127

liuhong的专栏 5617

Openstack Swift 安装部署总结

环境 硬件 这里只使用了一台服务器,既作为Controller Node,也作为Storage Node 主机名 IP OS 磁盘 文件系统 sf-dev 10.202.127.4 Centos-7.4 /dev/sdb/dev/sdc/dev/sdd XFS 软件 我们使用Openstack Pike版本 配置可用的Ope...

ch648966459的专栏 5385

Openstack swift常见问题

a)        如何查看.data文件的xattr属性 root@KVM-21:/mnt/sdb1/1/node/sdb1/objects/857/483/d666fd8b3ff3177e8aaa3790323ad483# ll total 8 drwxr-xr-x 2 root root  34 11月 14 08:55 ./ drwxr-xr-x 3 root root  45

xianyoudianxueyuan的专栏 2288
上一篇: [openstack swift]3 其他相关(2)
下一篇: 构建一致性哈希ring Part1
zzcase
博客等级 码龄19年 31粉丝 10原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值