侧边栏壁纸
博主头像
落叶人生博主等级

走进秋风,寻找秋天的落叶

  • 累计撰写 130562 篇文章
  • 累计创建 28 个标签
  • 累计收到 9 条评论
标签搜索

目 录CONTENT

文章目录

centos6安装sheepdog 虚拟机分布式储存

2022-06-25 星期六 / 0 评论 / 0 点赞 / 59 阅读 / 17064 字

前言 sheepdog是一个专门为qemu设计的虚拟机分布式文件系统,采用完全对称的结构,没有元数据服务的中心节点,因此免除了单点故障的隐患.本文基于最新的0.7.0版本测试,介绍sheepdog的安

前言

sheepdog是一个专门为qemu设计的虚拟机分布式文件系统,采用完全对称的结构,没有元数据服务的中心节点,因此免除了单点故障的隐患.本文基于最新的0.7.0版本测试,介绍sheepdog的安装配置和使用.

sheepdog的后端集群管理

sheepdog的后端集群管理用于管理节点间的成员关系和消息通讯.目前可使用四种模式,分别是local driver(用于单机测试),corosync (默认), zookeeper and Accord.

分为两种模型:

– 全对称 (依赖 Corosync ,运行于 Sheepdog 的地址空间)

● 缺点:规模小 [<100]

● 优点:无需配置

– 单独的控制集群 (依赖 Accord* 或者 Zookeeper ,运行于独立地址空间)

● 缺点:需要配置控制集群

● 优点:规模大 [>1000]

本测试使用的就是默认的Corosync模式.

 

安装前准备:

先做一些系统设置

.
   .          echo           "     * soft nofile 65533     "           >>           /     etc     /     security     /     limits     .     conf     echo           "     * hard nofile 65533     "           >>           /     etc     /     security     /     limits     .     confyum install -y make automake autoconf gcc nss-devel wget git glib2   .
.

安装epel源

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

 

安装sheepdog

1).安装corosync

centos6自带的版本过旧,我们需要安装新版

.
   .          yum remove corosync corosynclib corosynclib-devel -ygit clone git:     //     github     .     com     /     corosync     /     corosync     .     git     cd      corosyncgit checkout -b flatiron origin     /     flatiron      ./     autogen     .     sh     ./     configure --enable-nssmake install   .
.

 

2).安装sheepdog

.
   .          cd           /     home2     /     installgit clone git:     //     github     .     com     /     collie     /     sheepdog     .     git     cd      sheepdog     ./     autogen     .     sh     ./     configuremake install   .
.

 

配置corosync和sheepdog

.
   .          cd           /     etc     /     corosynccp corosync     .     conf     .     example corosync     .     conf   .
.

编辑corosync.conf修改bindnetaddr成你的网段如192.168.1.0

.
   .          #      Please read the corosync     .     conf      5      manual pagecompatibility: whitetanktotem {  version:      2       secauth:      off            threads     :      0            #      Note     ,      fail_recv_const is only needed      if      you're        #      having problems with corosync crashing under        #      heavy sheepdog traffic     .      This crash is due to        #      delayed     /     resent     /     misordered multicast packets     .             #      fail_recv_const:      5000       interface {    ringnumber:      0         bindnetaddr:      192.168     .     1.0         mcastaddr:      226.94     .     1.1         mcastport:      5405       }}logging {  fileline:      off       to_stderr: no  to_logfile: yes  to_syslog: yes       #      the pathname of the log file  logfile:      /     var     /     log     /     cluster     /     corosync     .     log       debug     :      off       timestamp:      on       logger_subsys {    subsys: AMF         debug     :      off       }}amf {       mode     : disabled}   .
.

启动服务

.
   .          /     etc     /     init     .     d     /     corosync      start          #     或通过命令启动     (/     var     /     lib     /     sheepdog是sheepdog使用的数据目录     ,     你可以更改到其他     )          #     sheep      /     var     /     lib     /     sheepdog   .
.

 

sheepdog要求/var/lib/sheepdog目录所在的分区支持xattr

.
   .          mount -o remount     ,     user_xattr      /   .
.

以上操作需要在每一台sheepdog节点执行

 

格式化sheepdog集群并设置3个副本,只需要在其中一台节点执行

.
   .          collie cluster      format       --copies     =     3   .
.

查看节点状态

.
   .          collie node list   .
.

至此sheepdog集群已经配置完毕

使用qemu-img创建sheepdog磁盘镜像

由于centos6自带的qemu1.2版本并不支持sheepdog,这里要编译新版的qemu.

安装依赖的包

  .    
      .                yum install zlib-devel glib2-devel -y      .
.

编译qemu

  .    
      .                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      .
.

创建磁盘

.
   .          /     usr     /     local     /     bin     /     qemu-img create -f qcow2 sheepdog     :MyFirstDisk      10G   .
.

如果sheepdog运行在其他机器上,需要指定IP和端口

.
   .          /     usr     /     local     /     bin     /     qemu-img create -f qcow2 sheepdog:     192.168     .     1.100     :     7000     :MyFirstDisk      10G   .
.

列出sheepdog里的镜像

.
   .          collie vdi list   .
.

将现有的镜像转换到sheepdog里

.
   .          qemu-img convert      ./     mysystem     .     raw sheepdog     :mysystem   .
.

启动虚拟机

.
   .          qemu-system-x86_64 --enable-kvm -m      1024      -drive file     =     sheepdog     :MyFirstDisk     ,     cache     =     writeback   -vnc :     15      -cdrom      /     data     /     CentOS-     6.4     -i386-minimal     .     iso   .
.

 

其他用法

1)创建快照

.
   .          qemu-img snapshot -c name  sheepdog     :MyFirstDisk   .
.

快照创建后查看镜像列表

.
   .          collie vdi list  name        id    size    used  shared    creation      time       object id--------------------------------------------------------------------  Bob               0            2.0      GB       1.6      GB       0.0      MB      2010     -     03     -     23           16     :     16                80000       MyFirstDisk       0            256      GB       0.0      MB       0.0      MB      2010     -     03     -     23           16     :     21           c0000s MyFirstDisk       1            256      GB       0.0      MB       0.0      MB      2010     -     03     -     23           16     :     16                40000   .
.

用快照启动虚拟机

.
   .          qemu-system-x86_64 sheepdog     :MyFirstDisk     :     1   .
.

2)磁盘克隆

.
   .          qemu-img create -b sheepdog     :MyFirstDisk      sheepdog     :Disk2   .
.

3)关闭sheepdog集群

.
   .           collie cluster shutdown   .
.

此命令会关闭所有节点的进程

 

4)使用fuse挂载sheepdog

首先建立一个名为my_volume的卷

.
   .          echo      my_volume      >           /     var     /     lib     /     sheepdog     /     vdi     /     mount   .
.

格式化为ext4并挂载

.
   .          mkfs     .     ext4      /     var     /     lib     /     sheepdog     /     volume     /     my_volumemount -o loop      /     var     /     lib     /     sheepdog     /     volume     /     my_volume      /     mnt   .
.

当连接的sheepdog机器宕机我们可以在线切换到另一台sheepdog

.
   .                echo      ip     :port           >           /     var     /     lib     /     sheepdog     /     config     /     sheep_info   .
.

广告 广告

评论区