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,重启机器

leofs存储总结的更多相关文章

  1. 基于本地存储的kvm虚拟机在线迁移

    基于本地存储的kvm虚拟机在线迁移 kvm虚拟机迁移分为4种(1)热迁移基于共享存储(2)热迁移基于本地存储(3)冷迁移基于共享存储(4)冷迁移基于本地存储 这里介绍的是基于本地存储的热迁移 动态块迁 ...

  2. HTML5 sessionStorage会话存储

    sessionStorage 是HTML5新增的一个会话存储对象,用于临时保存同一窗口(或标签页)的数据,在关闭窗口或标签页之后将会删除这些数据.本篇主要介绍 sessionStorage(会话存储) ...

  3. HTML5 localStorage本地存储

    介绍 localStorage(本地存储)的使用方式.包括对存储对象的添加.修改.删除.事件触发等操作. 目录 1. 介绍 1.1 说明 1.2 特点 1.3 浏览器最小版本支持 1.4 适合场景 2 ...

  4. MySQL数据库和InnoDB存储引擎文件

    参数文件 当MySQL示例启动时,数据库会先去读一个配置参数文件,用来寻找数据库的各种文件所在位置以及指定某些初始化参数,这些参数通常定义了某种内存结构有多大等.在默认情况下,MySQL实例会按照一定 ...

  5. Android数据存储之Android 6.0运行时权限下文件存储的思考

    前言: 在我们做App开发的过程中基本上都会用到文件存储,所以文件存储对于我们来说是相当熟悉了,不过自从Android 6.0发布之后,基于运行时权限机制访问外置sdcard是需要动态申请权限,所以以 ...

  6. nginx+iis+redis+Task.MainForm构建分布式架构 之 (redis存储分布式共享的session及共享session运作流程)

    本次要分享的是利用windows+nginx+iis+redis+Task.MainForm组建分布式架构,上一篇分享文章制作是在windows上使用的nginx,一般正式发布的时候是在linux来配 ...

  7. nodejs项目mysql使用sequelize支持存储emoji

    nodejs项目mysql使用sequelize支持存储emoji 本篇主要记录nodejs项目阿里云mysql如何支持存储emoji表情. 因由 最近项目遇到用户在文本输入emoji进行存储的时候导 ...

  8. html5的web存储

    在html5标准之前,web存储信息需要cookie来完成,但是cookie不适合大量数据存储.因为需要等待服务器响应,所以速度慢/效率低. 本地存储的特点: localstorage是仅存储在用户的 ...

  9. Mysql存储引擎及选择方法

    0x00 Mysql数据库常用存储引擎 Mysql数据库是一款开源的数据库,支持多种存储引擎的选择,比如目前最常用的存储引擎有:MyISAM,InnoDB,Memory等. MyISAM存储引擎 My ...

随机推荐

  1. CMD命令之 :修改windows的CMD窗口输出编码格式为UTF-8

    修改windows的CMD窗口输出编码格式为UTF-8 转载自 http://xuliduo.iteye.com/blog/639923 dos命令: chcp 65001  就是换成UTF-8代码页 ...

  2. BZOJ1047: [HAOI2007]理想的正方形

    传送门 蛤省省选果然水啊,我这种蒟蒻都能一遍A. 横向纵向维护两个单调队列,做两次求最大和最小的,总复杂度$O(NM)$ 码农题,考察代码实现能力 //BZOJ 1047 //by Cydiater ...

  3. POJ2318TOYS(叉积判断点与直线位置)

    题目链接 题意:一个矩形被分成了n + 1块,然后给出m个点,求每个点会落在哪一块中,输出每块的点的个数 就是判断 点与直线的位置,点在直线的逆时针方向叉积 < 0,点在直线的顺时针方向叉积 & ...

  4. ES6之let(理解闭包)和const命令

    ES6之let(理解闭包)和const命令 最近做项目的过程中,使用到了ES6,因为之前很少接触,所以使用起来还不够熟悉.因此购买了阮一峰老师的ES6标准入门,在此感谢阮一峰老师的著作. 我们知道,E ...

  5. 机器学习实战------利用logistics回归预测病马死亡率

    大家好久不见,实战部分一直托更,很不好意思.本文实验数据与代码来自机器学习实战这本书,倾删. 一:前期代码准备 1.1数据预处理 还是一样,设置两个数组,前两个作为特征值,后一个作为标签.当然这是简单 ...

  6. java编程思想-java 异常使用指南

    应该在以下情况下使用异常: 在恰当的级别处理问题(在知道该如何处理的情况下才捕获异常). 解决问题并且重新调用产生异常的方法. 进行少许修补,然后绕过异常发生的地方继续执行. 用别的数据进行计算,以代 ...

  7. nginx 学习笔记(9) 配置HTTPS服务器--转载

    HTTPS服务器优化SSL证书链合并HTTP/HTTPS主机基于名字的HTTPS主机带有多个主机名的SSL证书主机名指示兼容性 配置HTTPS主机,必须在server配置块中打开SSL协议,还需要指定 ...

  8. asp.net json 与xml 的基础事例

    //json序列化和反序列化 using System.Runtime.Serialization.Json; public static string JsonSerializer<T> ...

  9. jQ选择器学习片段(JavaScript 部分对应)

    $()函数在大多的JavaScript类库中都被作为一个选择器函数来使用,在jQuery中就是. $("#id")通过id来获取元素,用来代替document.getElement ...

  10. spark操作elasticsearch数据的限制

    对于复杂的数据类型,比如IP和GeoPoint,只是在elasticsearch中有效,用spark读取时会转换成常用的String类型. Geo types. It is worth mention ...