1. 准备
    1. repo配置

      yum clean all

      yum makecache

    2. yum install -y make automake autoconf gcc nss-devel wget git glib2
    3. 安装corosync

      参考:https://github.com/sheepdog/sheepdog/wiki/Install%20From%20Sources

    yum remove corosync corosynclib corosynclib-devel -y

    git clone git://github.com/corosync/corosync.git

    cd corosync

    git checkout -b flatiron origin/flatiron

    ./autogen.sh

    ./configure --enable-nss

    make install

  2. 安装sheepdog
    1. 准备liburcu/ yasm

      参考:https://github.com/sheepdog/sheepdog/wiki/Install%20From%20Sources

      http://lishenxiao.blog.hexun.com/85146991_d.html

      wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

      rpm -Uvh epel-release*rpm

      yum install userspace-rcu -y

      yum install userspace-rcu-devel –y

      安装yasm:

      yum install yasm yasm-devel -y

    2. 安装sheepdog

      git clone git://github.com/sheepdog/sheepdog.git

      cd sheepdog

      ./autogen.sh

      ./configure

      make install

    3. 配置corosync

      参考:https://github.com/sheepdog/sheepdog/wiki/Corosync-config

      http://my.oschina.net/kisops/blog/153576

    4. 启动corosync服务

      /etc/init.d/corosync start

    5. 配置sheepdog

      配置元数据、对象数据路径:

      mount -o remount,user_xattr /var

      mount -o remount,user_xattr /home/disk1

      mount -o remount,user_xattr /home/disk2

      mount -o remount,user_xattr /home/disk3

      参考:https://github.com/sheepdog/sheepdog/wiki/Multi-disk-on-Single-Node-Support

    6. 使用缓存

      mkdir -p /home/cache

    7. 启动sheepdog

      sheep -w size=200G,dir=/home/cache,direction /var/lib/sheepdog,/home/disk1,/home/disk2,/home/disk3

    8. 查看集群节点列表

      collie node list

      或者,

      dog node list

      collie node info

      或者,

      dog node info

    9. 集群存储格式化

      collie cluster format --copies=3

      或者,

      dog cluster format --copies=3

      只需在其中一个节点执行

  3. 使用sheepdog——通过iscsi协议
    1. 参考资料

      https://github.com/sheepdog/sheepdog/wiki/General-protocol-support-%28iSCSI-and-NBD%29

      http://blog.csdn.net/bobpen/article/details/10172163

    2. 创建虚拟机镜像

      dog vdi create ebs 500G

    3. 安装tgt

    git clone git://github.com/fujita/tgt.git -b sheepdog

    cd tgt

    make

    make install

    1. 启动tgtd

      tgtd

    2. 创建target

      tgtadm --op new --mode target --tid 1 --lld iscsi --targetname iqn.2013-10.org.sheepdog-project

      tgtadm --op new --mode lu --tid 1 --lun 2 --bstype sheepdog --backing-store unix:/var/lib/sheepdog/sock:ebs

      tgtadm --lld iscsi --op bind --mode target --tid 1 -I ALL

    3. 查看tgtd配置

      tgtadm --lld iscsi --op show --mode target

    4. 安装open-iscsi启动器——操作系统内核需要有scsi、iscsi相关ko支持。

      yum install iscsi-initiator-utils –y

      启动客户端:

      /etc/init.d/iscsi start

      /etc/init.d/iscsid start

      iscsiadm -m discovery -t st -p 127.0.0.1 自动启动iscsi

      发现tgt:

      iscsiadm -m node --targetname iqn.2013-10.org.sheepdog-project --portal 127.0.0.1:3260 --login

      device新增如下:

  4. Sheepdog块设备性能测试
    1. 无SSD,使用本地磁盘做cache,3备份,随机写、顺序写、顺序读性能均较差,但是随机读性能非常好。
  5. 使用sheepdog——通过qeum
    1. 安装qeum编译依赖包

      yum install zlib-devel glib2-devel -y

    2. 编译安装qeum

      wget http://wiki.qemu-project.org/download/qemu-1.5.2.tar.bz2

      tar jxvf qemu-1.5.2.tar.bz2

      cd qemu-1.5.2

      ./configure

      make;make install

    3. 创建磁盘

      qemu-img create -f qcow2 sheepdog:127.0.0.1:7000:disktest 500G

      collie vdi list

    4. 启动虚拟机

      qemu-system-x86_64 --enable-kvm -m 4096 -smp 4 -drive file=sheepdog:disktest,cache=writeback -vnc :8901 -cdrom CentOS-6.3-x86_64-minimal.iso

    5. 通过虚拟机测试sheepdog性能

【OpenStack】OpenStack系列6之Sheepdog环境搭建的更多相关文章

  1. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  2. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  3. 【JAVA零基础入门系列】Day1 开发环境搭建

    [JAVA零基础入门系列](已完结)导航目录 Day1 开发环境搭建 Day2 Java集成开发环境IDEA Day3 Java基本数据类型 Day4 变量与常量 Day5 Java中的运算符 Day ...

  4. .Net Core 系列:1、环境搭建

    前言: 2016年6月28日微软宣布发布 .NET Core 1.0.ASP.NET Core 1.0 和 Entity Framework Core 1.0. .NET Core是微软在两年前发起的 ...

  5. Android总结篇系列:Android开发环境搭建

    工欲善其事必先利其器. 1.安装并配置Java环境进入Java oracle官网,当前网址如下:http://www.oracle.com/technetwork/java/javase/downlo ...

  6. windows phone 8 开发系列(一)环境搭建

    一:前奏说明 本人一名普通的neter,对新玩意有点小兴趣,之前wp7出来的时候,折腾学习过点wp7开发,后来也没怎么用到(主要对微软抛弃wp7的行为比较不爽),现在wp8已经出来一段时间了,市场上也 ...

  7. .net转php laraval框架学习系列(一) 环境搭建

    之前也没写过什么博客,可能文章结构比较混乱,想到那写到哪. 主要是把自己学习中的经验写下来. 为什么选择laravel框架,是因为laravel框架目前是Php最流行的框架,深入研究后发现和asp.n ...

  8. [Android系列—] 1. Android 开发环境搭建与Hello World

    前言 開始之前先熟悉几个名词: SDK -- Software Development Kit, 软件开发工具包.这个词并不陌生, JDK,就是Jave Development Kit,相同对于And ...

  9. 【java系列】java开发环境搭建

    描述 本篇文章主要讲解基于windows 10系统搭建java开发环境,主要内容包括如下: (1)安装资料准备 (2)安装过程讲解 (3)测试是否安装成功 (4)Hello Word测试 1   安装 ...

随机推荐

  1. struts1日期转换处理

    问题场景 最近在维护公司旧的系统(用的struts1框架)的时候,在日期处理的时候,我将日期设定为Date类型,结果报以下错误: javax.servlet.ServletException: Bea ...

  2. 压缩算法实现之LZ78

    LZ78编码 LZ78算法,建立词典的算法. LZ78的编码思想: 不断地从字符流中提取新的缀-符串(String),通俗地理解为新"词条",然后用"代号"也就 ...

  3. CentOS 安装 Jexus

    官网:http://www.jexus.org/ 安装过程就照着页面上做就好了,前提是需要安装好mono 在VS2015中新建一个MVC应用程序,这里需要注意两个步骤: 第1步:移除bin下的Micr ...

  4. 【POJ 2250】Compromise(最长公共子序列LCS)

    题目字符串的LCS,输出解我比较不会,dp的时候记录从哪里转移来的,之后要一步一步转移回去把解存起来然后输出. #include<cstdio> #include<cstring&g ...

  5. Java编程思想学习(五) 复用类

    1.继承与组合 复用类的方法有两种:继承与组合.继承就不多说了,组合就是直接在类中new一个对象. 数组也是对象,使用数组也是组合的一种. 2.初始化基类 当创建一个导出类的对象时,该对象包含一个基类 ...

  6. 【poj2234】 Matches Game

    http://poj.org/problem?id=2234 (题目链接) 题意 经典取火柴游戏 Solution 裸的Nim游戏,也就是取石子. 整个游戏的sg值为每一堆火柴(子游戏)的异或和. 代 ...

  7. PHP 数据库驱动、连接数据不同方式学习笔记

    相关学习资料 http://www.php.net/manual/zh/refs.database.php http://www.php.net/manual/zh/internals2.pdo.ph ...

  8. 编译java文件,出错:Failed to establish a connection with the target VM

    helloword程序,所有java学习人员人生第一个程序,哎妈,基础太差,出错 public class Helloword{ public Helloword() { public static ...

  9. 用多态来实现U盘,Mp3,移动硬盘和电脑的对接,读取写入数据。

    using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...

  10. c++实现加密和解密算法以及JNI技术的应用实例

    #include "jiami.h" #include "jni.h" #include "com_test_start_CommonClassLoa ...