Gluster分布式文件系统(进阶篇)

   基于Gluster分布式文件系统的KVM平台,目前大多的IAAS云计算平台均以共享存储(磁盘柜)的方式提供统一访问的存储空间,但成本、性能等方面一直是个问题。随着分布式文件系统的不断成熟,我们有理由相信这是IAAS云计算平台的未来,低成本、高性能、PB级别的存储容量这些正是我们追求的,Gluster分布式文件系统+KVM的方式似乎为我们提供了答案。

测试环境说明:

硬件:服务器:2台Hp DL580 G7 (64G 4*xeon e7-4807 300g*4 RAID5 4个千兆网口)

    交换机:2台 H3C S5120   文件系统数据传输专用

软件:操作系统:Ubuntu 12.04.1 LTS 64bit

系统配置:机器名:linux01 公共IP地址:192.168.1.100 私有数据传输IP地址:100.100.100.10  单独分区:/export/brick(用于分布式系统brick使用)

            Linux02 公共IP地址:192.168.1.101 私有数据传输IP地

址:100.100.100.20

套件:gluster ifenslave kvm

整体架构图

gluster

实施步骤:

交换机端操作:

一、交换机之间级联采用双网口链路聚合,增强可靠性。

服务器端操作:

二、双网卡捆绑,增加负载与故障转移(防止单点故障)

Linux01上操作:(linux02操作除IP配置不同外其他一致)

  • apt-get install ifenslave-2.6
  • vi /etc/modules  增加一段  采用双网卡捆绑第6种模式(详细的linux网卡捆绑模式介绍请参   见我之前转载的文章)

bonding miimon=100 mode=6

  • modprobe bonding
  • vi /etc/network/interface  修改网卡配置文件如下列:

auto br0

iface br0 inet static

     address 192.168.1.100

     network 192.168.1.0

     netmask 255.255.255.0

     broadcast 192.168.1.255

     gateway 192.168.1.254

     bridge_ports eth0

     bridge_fd 0

     bridge_hello 2

     bridge_maxage 12

     bridge_stop off

auto bond0

iface bond0 inet static

        address 100.100.100.10

        netmask 255.255.255.0

up ifenslave bond0 eth2 eth3

down ifenslave -d bond0 eth2 eth3   (网口3和4分别插在2个交换机上)

5、重启服务器 shutdown -r now

6、测试捆绑效果,分别插拔其中一条网线查看网络是否连通。cat /proc/net/bonding/bond0 查看状态。

三、安装gluster分布式文件系统套件:

1、apt-get install glusterfs-server glusterfs-common glusterfs-client gluste

rfs-dbg glusterfs-examples  (本机即使服务端也是客户端)

2、两台服务器交换ssh密钥,实现无密码登录

vi /etc/hosts  加入机器IP与机器名称对应关系

100.100.100.10  linux01

100.100.100.20  linux02

ssh-copy-id -i .ssh/id_rsa.pub root@100.100.100.20(拷贝密钥到linux02)

3、gluster 配置:(其中一台服务器中操作即可)

  1、对等体设置:

  Gluster>peer probe 100.100.100.20 (添加对等体)

  Gluster>peer detach 100.100.100.20 (删除对等体)

  Gluster>peer status (对等体状态)

   2、卷设置:

  Gluster> volume create gv0 replica 2 100.100.100.10:/export/brick 100.100.100.20:/export/brick 创建 replica(镜像)卷 冗余为2份。

  Gluster> volume start gv0 启动卷

  Gluster> volume delete gv0 删除卷

Gluster> volume add-brick gv0 100.100.100.30:/export/brick 100.100.100.40:/export/brick 向卷中添加砖,如果是replica 2卷 需同时加入2块砖。

Gluster> volume remove-brick gv0 100.100.100.30:/export/brick 100.100.100.40:/export/brick 如果是replica 2卷 需要同时删除2个brick,否则不成功。

Gluster> volume replace-brick gv0 100.100.100.20:/export/brick 100.100.100.50:/export/brick start 将数据从一个砖迁移到另一快(新砖不能加入到卷中,否则会报砖已使用的错误)

Gluster> volume replace-brick gv0 100.100.100.20:/export/brick 100.100.100.50:/export/brick commit 完成迁移后的替换

Gluster> volume rebalance gv0 start新添加砖后需要重新平衡卷数据分布

卷优化参数设置:

Gluster>volume set performance.cache-size: 5GB  (设置缓存)

Gluster>volume set performance.io-thread-count: 64 (设置IO线程数最大64)

Gluster>volume set performance.write-behind-window-size: 5MB (后写的大小)

   3、挂载卷:

mount -t glusterfs 100.100.100.10:/gv0 /var/lib/libvirt/ (每台服务器挂载自己的IP地址即可)这就是gluster文件系统设计的精妙之处,无元数据服务器,无单点故障,减少性能瓶颈。

  • 设置开机自动挂载:

vi /etc/rc.local  在exit 0 前加入一段

/bin/mount -t glusterfs 100.100.100.10:/gv0 /var/lib/libvirt/

四、KVM套件安装:

apt-get install kvm bridge-utils libvirt-bin qemu qemu-kvm uml-utilities kvm-ipxe virt-manager

接下来就可以利用virt-manager工具部署虚拟机,并可以实现动态迁移虚拟机。

发表评论