leofs存储总结

1、leofs角色

Account(账户)、Bucket(对象桶)、Object(对象),

gateway、manager0、manager1、storage

Account

一个account可以创建多个bucket,一个bucket可以有无限数量的object,它们之间关系如下:

Bucket

是object的容器,第个Object必须存储到Bucket里面。Bucket是Leofs里的一个高层命名空间,它在Leofs存储系统中是唯一的,每个Account最多可创建10个Bucket。但是Bucket里面的Object数量没有限制。Bucket命名规则:

只能包括小写字母,数字,短横线(-)

必须以小写字母或者数字开头

长度必须在 3-63 字节之间

Object

是LeOSS的基本实体。Objects由object data和metadata组成。用户存储在LeOSS中的文件是无格式化的。他们可以是任意格式的文件,比如:视频,音频,图像,文本等格式。支持Object的大小从1字节到5T字节。

AccessKeyID和AccessSecretKey

用户注册LeOSS时,系统会给用户分配一对Access Key ID和Access Key Secret,称为 ID 对,用于标识用户,为访问 LeOSS 做签名验证。

Leofs GateWay

LeOSS Gateway由一个高性能webserver,API处理器和缓存机制组成。用户能够非常容易通过S3 Client(例如:s3cmd, DragonDisk),或者自己通过Java、Ruby、PHP语言编码访问LeOSS。

一个Client发送请求操作某个Object或者Bucket到LeOSS Gateway,Gateway将这个请求转发到一个Storage节点。

目标Storage节点是通过路由表决定的。路由表被叫做RING,它被LeOSS Manager产生和维护。

另外,为了保持高性能和减少Gateway和Storage直接的流量,LeOSS也内建了对象缓存机制。

Leofs Storage

LeOSS Storage包含Object和Meta Storage。另外,为了保证最终一致性,它还包括复制系统和修复系统。

在写操作情况下,LeOSS Storage从LeOSS Gateway接收请求后自动复制对象到LeOSS Storage集群。最后由LeOSS Storage确认这个被存储的Object是否满足一致性规则。

另外,在读操作的情况下,LeOSS Gateway向LeOSS Storage存储节点发送请求。然后,LeOSS Storage存储节点从本地或者远程LeOSS Storage存储节点检索这个对象。最后,LeOSS Storage发送响应给发送请求的LeOSS Gateway。

如果,LeOSS Storage存储节点发现一个不一致的Object,它将启动一个后台进程来修复这种不一致的情况。这个Object最终会保持一致状态

LeOSS Manager

LeOSS Manager产生和管理一个基于一致性hash的被叫做RING的路由表。为了保持LeOSS的持续运行和RING的一致性,LeOSS Manager一直监控每个LeOSS Gateway和LeOSS Storage的状态。另外,它也分发RING到LeOSS Gateway和LeOSS Storage。

2、Leofs的配置

双台部署,151 : manager0 , storage , gateway,   160 : manager1 , storage

(1)下载leofs地址:http://leo-project.net/leofs/

(2)登录192.168.1.151 把lefs-1.2.12.tar.gz文件解压到/opt/目录下

登录192.168.1.160 把lefs-1.2.12.tar.gz文件解压到/opt/目录下

(3)在151的/opt/lefs-1.2.12执行./setup_manager0.sh ,输入manager1的ip即192.168.1.160

(4)在160的/opt/lefs-1.2.12执行./setup_manager1.sh ,输入manager0的ip:192.168.1.151和manager1的ip即192.168.1.160

(5)在151的/opt/lefs-1.2.12目录下执行./setup_storage.sh,输入manager0的ip和manager1的ip,输入storage的存储路径

(6)在160的/opt/lefs-1.2.12目录下执行./setup_storage.sh,输入manager0的ip和manager1的ip,输入storage0的ip,注意是160,输入storage的存储路径

(7)在151的/opt/lefs-1.2.12目录下执行./setup_gateway.sh,,输入manager0的ip和manager1的ip,输入gateway的存储路径

(8)在151的/opt/lefs-1.2.12目录下执行./startup_manager0.sh

(9)在160的/opt/lefs-1.2.12目录下执行./startup_manager1.sh

(10)在151的/opt/lefs-1.2.12目录下执行./startup_storage.sh

(11)在160的/opt/lefs-1.2.12目录下执行./startup_storage.sh

(12)在151的/opt/lefs-1.2.12目录下执行./startup_gateway.sh

(13)执行完上面的命令后,leofs会安装到/usr/local/lefs/1.2.12目录下,进入此目录

执行

l ./leofs-adm    create-user  accountName  password,创建完会返回accessKey和secretKey,如图

l  ./leofs-adm   get-users 查看已添加的用户

添加bucket,参数是bucket名和accessKey

l ./leofs-adm   add-bucket   buckettest   19515aeed1846146f166

l ./leofs-adm start启动storage集群

l ./leofs-adm status查看状

状态是running,就可正常使用。

l  ./leofs-adm  get-bucket <access-key-id> 根据access-key-id获取bucket

l  ./leofs-adm  get-buckets 获取bucket列表

3、

有时候manager1和manager0不能同时启动,需要安装nmap-ncat-6.40-4.el7.x86_64.rpm包,并且修改/etc/selinux/config

SELINUX=disabled,重启机器

时间: 2024-10-14 09:20:58

leofs存储总结的相关文章

leofs 对象存储中一匹黑马

leofs centos 集群搭建和测试(二) centos  leofs 配置 leofs  cluster  基本规划 Manager IP: 10.39.1.23, 10.39.1.24 Name: [email protected], [email protected] Gateway IP: 10.39.1.28 Name: [email protected] Storage IP: 10.39.1.25 .. 10.39.1.26  ... 10.39.1.27 Name: [ema

龙存存储部署管理维护文档

目录 龙存存储集群部署2 元数据服务器部署2 数据存储服务器部署3 客户端部署3 监控部署4 单机版LoongBox4 loongBox部署4 登陆WEB页面进行配置5 集群监控部署LeoManagerNeo10 连接配置10 打开连接12 配置存储服务器13 配置元数据服务器:14 配置应用服务器:15 启动元数据服务器16 启动存储服务器16 启动应用服务器16 NAS管理:17 NFS和Samba共享21 设置文件分布(数据副本模式)25 同步部署26 扩容29 故障处理29   龙存存储

java web应用用户上传图片的存储地址

原来工程的上传图片存储地址在web应用的目录下,并且是硬编码到其中的: 每次使用maven tomcat:redeploy以后,这个目录就没有了. 现在想要把上传图片的位置移动到tomcat的webapps目录中专门存放图片的一个目录下. 即,新建的一个images目录用来存放web应用的图片们. 这样就把工程和用户上传图片分离了,以后在redeploy时也不用预先备upload目录,然后再拷贝回去,因而在web应该更新时比较方便些.此外,还想改变文件路径被硬编码到java文件中的现状,所以将文

运用PDO存储将图片、音频文件存入数据库

在数据库中创建表格的时候,有一个字段为image,用来保存图片,那么其类型就是blob,关于blob,百度百科是这样描述的 BLOB (binary large object),二进制大对象,是一个可以存储二进制文件的容器. 在计算机中,BLOB常常是数据库中用来存储二进制文件的字段类型. BLOB是一个大文件,典型的BLOB是一张图片或一个声音文件,由于它们的尺寸,必须使用特殊的方式来处理(例如:上传.下载或者存放到一个数据库). 根据Eric Raymond的说法,处理BLOB的主要思想就是

maven的jar包存储的位置

从Maven中心仓库下载到本地的jar包的默认存放在"${user.home}/.m2/repository"中,${user.home}表示当前登录系统的用户目录(如"C:\Users\gacl"), 点击进入repository文件夹, Jar包存放在这个位置不太好,我们希望能够自己定义下载下来的jar包的存放位置,因此我们可以自己设置下载到本地时的jar包的存放目录. 在"E:\"目录下创建一个"repository"文

【数据算法】Java实现二叉树存储以及遍历

二叉树在java中我们使用数组的形式保存原数据,这个数组作为二叉树的数据来源,后续对数组中的数据进行节点化操作. 步骤就是原数据:数组 节点化数据:定义 Node节点对象 存储节点对象:通过LinkedList保存Node节点对象 在操作过程中我们需要将当前结点和前一节点.后一节点进行关系绑定 package tree; import java.util.LinkedList; import java.util.List; /** * 功能:把一个数组的值存入二叉树中,然后进行3种方式的遍历 *

MySQL怎样存储IP地址

这两天面试,借贷宝面试官有问到你之前的项目是如何存储ip地址的,我的回答是,存储为varchar字符串类型(事实上我之前参与的项目中的确是采用varchar类型来存储的,但现在想想,当时的场景也仅仅是记录用户操作的地址,也没什么太多用途). 然后,面试官又问我,那你如何查找出A类IP地址的内容,这个时候我就懵了,因为我根本不知道IP地址还分类别,只知道基本格式是从0.0.0.0 ~ 255.255.255 所以,面试也是一种知识的学习,只可惜过程太痛苦,年轻的时候多学点总不是坏处,后悔当初在公司

使用文件进行数据存储四种模式

视频笔记: 1.应用包名:唯一标识一个应用 2.使用文件进行数据存储: (1)Context.MODE_PRIVATE: 默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中,可以使用Context.MODE_APPEND (2)Context_APPEND:只能被应用本身访问:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件. Context_WORLD_READABLE和Context_WORLD_

HashMap存储原理

1.    HashMap概述 HashMap是基于哈希表的Map接口的非同步实现.此实现提供所有可选的映射操作,并允许使用null值和null键.此类不保证映射的顺序,特别是它不保证该顺序恒久不变. 2.    HashMap的数据结构 在java编程语言中,最基本的结构就是两种,一个是数组,另外一个是模拟指针(引用),所有的数据结构都可以用这两个基本结构来构造的,HashMap也不例外.HashMap实际上是一个"链表散列"的数据结构,即数组和链表的结合体. 3.