基于IntelCAS加速的Glusterfs常见运维

Posted 抛物线.

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于IntelCAS加速的Glusterfs常见运维相关的知识,希望对你有一定的参考价值。

Intel CAS全称是Intel cache acceleration software,
这里是官方网站:http://www.intel.com/support/go/cas

文章目录

一、IntelCAS的使用

这里是IntelCAS 的帮助文档。
在搭配Intel自己的闪存产品时,这个软件没有cache的容量限制。
如果使用其他品牌的闪存产品,则每个cache最大只能200GB。

介绍下一个配置工具CAS   casadm
[root@node1 ~]# casadm -H
WARNING: Intel(R) CAS is running on a non-validated OS!
Intel(R) Cache Acceleration Software Linux

Usage: casadm <command> [option...]

Available commands:
   -S  --start-cache              Start new cache instance or load using metadata
   -T  --stop-cache               Stop cache instance
   -X  --set-param                Set various runtime parameters
   -G  --get-param                Get various runtime parameters
   -Q  --set-cache-mode           Set cache mode
   -A  --add-core                 Add core device to cache instance
   -R  --remove-core              Remove core device from cache instance
       --remove-detached          Remove core device from core pool
   -L  --list-caches              List all cache instances and core devices
   -P  --stats                    Print statistics for cache instance
   -Z  --reset-counters           Reset cache statistics for core device within cache instance
   -F  --flush-cache              Flush all dirty data from the caching device to core devices
   -E  --flush-core               Flush dirty data of a given core from the caching device to this core device
   -D  --flush-parameters         Change flush thread parameters (OBSOLETE)
   -C  --io-class                 Manage IO classes
   -N  --nvme                     Manage NVMe namespace
   -V  --version                  Print Intel(R) CAS version
   -H  --help                     Print help

For detailed help on the above commands use --help after the command.
e.g.
   casadm --start-cache --help
For more information, please refer to manual, Admin Guide (man casadm)
or go to support page <http://www.intel.com/support/go/cas>.
[root@node1 ~]# 

二、Intel CAS在linux下的安装

安装程序名一般是:

installer-Intel-CAS-xxxxxxxxxxxxxxxxxxx.run

ftp到主机,并给它执行权限,直接执行就好了。

目前最新版本是3.6,这个版本支持的OS:rhel6.86.97.37.4,centos 6.86.97.37.4,
如果用OEL,要把内核切换到rhel的兼容内核。

三、Intel CAS配置

1 、核心的配置文件是/etc/intelcas/intelcas.conf
[root@node1 intelcas]# ls
intelcas.conf  ioclass-config.csv  validated_configurations.csv
[root@node1 intelcas]# pwd
/etc/intelcas
[root@node1 intelcas]# 

2 、配置文件解析

安装过后,会自动生成这个配置文件 ,初始时所有行都是注释掉的,注释中包含说明和例子。

是注释掉的,去掉注释,根据自己的情况修改:

## Caches configuration section
 
[caches]
 
## Cache ID Cache device Cache mode Extra fields (optional)
 
## Uncomment and edit the below line for cache configuration
 
1 /dev/disk/by-id/nvme-INTEL_SSDPEDMW012T4_CVCQ5146005Q1P2BGN WB
 
## Core devices configuration
 
[cores]
 
## Cache ID Core ID Core device
 
## Uncomment and edit the below line for core configuration
 
1 1 /dev/disk/by-id/wwn-0x5000c5008f07fcaf

这里需要注意一下,为了防止磁盘的飘动,磁盘应写id:

查看ID的办法如下:

[root@node1 intelcas]# ls -l /dev/disk/by-id/
total 0
lrwxrwxrwx 1 root root  9 Dec  3 08:56 ata-QEMU_DVD-ROM_QM00001 -> ../../sr0
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-49ac23b4-7bc0-4878-a -> ../../vdf
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-61d85d0a-6b60-4e90-9 -> ../../vdb
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-63623f20-e2d3-4c68-8 -> ../../vdh
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-7af8271a-500d-463d-8 -> ../../vdd
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-83930fe5-3ab3-418b-b -> ../../vdg
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-c3349770-d5e3-494d-b -> ../../vde
lrwxrwxrwx 1 root root  9 Dec  5 16:31 virtio-c8e6629c-d6e5-43ce-9 -> ../../vdc

另外:

<缓存ID>是一个介于116,384之间的数值(有效的缓存实例号)。
•<Core ID>04095之间的数值(有效的Core实例号)
•缓存和核心设备必须指向现有的HDD和SSD设备,最好通过by-id名称引用(ls -l /dev/disk/by-id)。
核心设备应该引用WWN标识符,而缓存设备应该使用型号和序列号。
或者,可以通过设备名称引用设备
(如。例如当运行casadm命令时。)
模式决定缓存模式,可以是写进模式、写回模式、写进模式或传递模式。
•可选:额外的标志允许额外的设置缓存和核心设备,逗号分隔。
•ioclass_file允许用户加载指定该缓存的IO类策略的文件。
•cleaning_policy允许用户指定用于此缓存的缓存清理策略,可以是acp、alru或nop

3 、内容说明

[caches]部分是主要是3列,cache id,设备名,和cache模式

Cache id1开始排列,多块PCI SSD做cache,就依次编号,设备名建议用/dev/disk/by-id/目录下的别名,
例子里是使用intel PCI SSD的一个例子,cache模式是WB,write back, 也可以是WT(write through), PT(pass through)。

[cores]部分就是被加速的机械盘设备,也是3列,cache id就是告诉系统用哪个设备做cache,
例子里就是上面刚定义的1号cache设备,core id也是从1开始依次排列,
core device即使机械硬盘设备名,也是建议用/dev/disk/by-id/目录下的别名。

四、 初始化CAS

[root@node1 intelcas]#  intelcas init


如果闪存盘上有数据或文件系统,需要使用:

[root@node1 intelcas]#  intelcas init  -force


初始化后自动启动CAS,然后就能看到应用了cache后的设备了。

core id和cache id构成cache后的设备名,
上面例子中加速后的机械硬盘的设备名就是/dev/intelcas1-1

如果机械硬盘太大,给oracle时要分区,就对/dev/intelcas1-1进行分区操作,
不要对底层机械硬盘进行分区,上面的例子里,
就是不要对/dev/disk/by-id/wwn-0x5000c5008f07fcaf

进行分区,或者不要对真正的/dev/sdX进行分区。

分区后的设备就是/dev/intelcas1-1p1, /dev/intelcas1-1p2……

五、 启动/关闭CAS

只要配置了/etc/intelcas/intelcas.conf, 系统重启后,会自动启动CAS, 不需要人工干预。

如果要手工停止和启动,使用命令:
[root@node1 intelcas]#   intelcas start/stop

六 、 使用casadm工具进行配置分析:

环境准备:

主机磁盘 HDDSSD
node1/dev/vdb、/dev/vdc、/dev/vdd/dev/vde
node2/dev/vdb、/dev/vdc、/dev/vdd/dev/vde
node3/dev/vdb、/dev/vdc、/dev/vdd/dev/vde

eg:

[root@node1 intelcas]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  478K  0 rom  
vda    253:0    0   50G  0 disk 
├─vda1 253:1    0  200M  0 part /boot
└─vda2 253:2    0 49.8G  0 part /
vdb    253:16   0   50G  0 disk 
vdc    253:32   0   50G  0 disk 
vdd    253:48   0   50G  0 disk 
vde    253:64   0   20G  0 disk 

[root@node2 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  478K  0 rom  
vda    253:0    0   50G  0 disk 
├─vda1 253:1    0  200M  0 part /boot
└─vda2 253:2    0 49.8G  0 part /
vdb    253:16   0   50G  0 disk 
vdc    253:32   0   50G  0 disk 
vdd    253:48   0   50G  0 disk 
vde    253:64   0   20G  0 disk


[root@node3 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  478K  0 rom  
vda    253:0    0   50G  0 disk 
├─vda1 253:1    0  200M  0 part /boot
└─vda2 253:2    0 49.8G  0 part /
vdb    253:16   0   50G  0 disk 
vdc    253:32   0   50G  0 disk 
vdd    253:48   0   50G  0 disk 
vde    253:64   0   20G  0 disk

(要注意配置完之后,要将配置内容写进/etc/intelcas/intelcas.conf中)

① 首先看下Intelcas的状态

[root@node1 intelcas]# casadm -L
WARNING: Intel(R) CAS is running on a non-validated OS!
No caches running
[root@node1 intelcas]# 


②下面进行配置(这里仅仅是演示只在node1节点上进行操作,事实上三个节点都需要操作)
首先添加cache设备

[root@node1 intelcas]#  casadm -S -i 1 -d /dev/vde 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added cache instance 1
[root@node1 intelcas]# 

其次添加core设备,前提是要指定绑定的cache设备

[root@node1 intelcas]# casadm -A -i 1 -j 1 -d /dev/vdb 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added core 1 to cache instance 1
[root@node1 intelcas]# casadm -A -i 1 -j 2 -d /dev/vdc 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added core 2 to cache instance 1
[root@node1 intelcas]# casadm -A -i 1 -j 3 -d /dev/vdd 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added core 3 to cache instance 1
[root@node1 intelcas]# 

查看结果如下:(一拖三)

[root@node1 intelcas]# casadm -L
WARNING: Intel(R) CAS is running on a non-validated OS!
type    id   disk       status    write policy   device
cache   1    /dev/vde   Running   wt             -
+core   1    /dev/vdb   Active    -              /dev/intelcas1-1
+core   2    /dev/vdc   Active    -              /dev/intelcas1-2
+core   3    /dev/vdd   Active    -              /dev/intelcas1-3

更改一下模型策略

[root@node1 intelcas]# casadm -Q -c wb -i 1 
WARNING: Intel(R) CAS is running on a non-validated OS!
[root@node1 intelcas]# casadm -L
WARNING: Intel(R) CAS is running on a non-validated OS!
type    id   disk       status    write policy   device
cache   1    /dev/vde   Running   wb             -
+core   1    /dev/vdb   Active    -              /dev/intelcas1-1
+core   2    /dev/vdc   Active    -              /dev/intelcas1-2
+core   3    /dev/vdd   Active    -              /dev/intelcas1-3

然后通过ls - l /dev/disk/by-id/…获取下每个设备的id,并写进配置文件

#  |  |     '  |   |.-'   |      (      ----  '-.
#  |  |     |  |   \\      |       \\    (   |     )
#  '- '     '  '--  '--'  '--      '--  --' ' --'

# Intel(R) CAS configuration file - for reference on syntax
# of this file please refer to appropriate documentation

# NOTES:
# 1) It is highly recommended to specify cache/core device using path
# that is constant across reboots - e.g. disk device links in
# /dev/disk/by-id/, preferably those using device WWN if available:
#   /dev/disk/by-id/wwn-0x123456789abcdef0
# Referencing devices via /dev/sd* may result in cache misconfiguration after
# system reboot due to change(s) in drive order.

## Caches configuration section
[caches]
## Cache ID     Cache device                            Cache mode      Extra fields (optional)
## Uncomment and edit the below line for cache configuration
#1              /dev/disk/by-id/nvme-INTEL_SSDP..       WT
1               /dev/disk/by-id/virtio-c3349770-d5e3-494d-b     WB

## Core devices configuration
[cores]
## Cache ID     Core ID         Core device
## Uncomment and edit the below line for core configuration
#1              1               /dev/disk/by-id/wwn-0x123456789abcdef0
1               1               /dev/disk/by-id/virtio-61d85d0a-6b60-4e90-9
1               2               /dev/disk/by-id/virtio-c8e6629c-d6e5-43ce-9
1               3               /dev/disk/by-id/virtio-7af8271a-500d-463d-8

## To specify use of the IO Classification file, place content of the following line in the
## Caches configuration section under Extra fields (optional)
## ioclass_file=/etc/intelcas/ioclass-config.csv

③:将设备进行挂载:
先创建挂载点:

[root@node1 data]# mkdir intelcas1-1..3
[root@node1 data]# ls
intelcas1-1  intelcas1-2  intelcas1-3

然后将挂载设备文件写入 /etc/fstab文件中


[root@node1 ~]# vi /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Mar 18 04:25:44 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=eb5e1ffc-7d7f-4ed3-bd90-0c7d23eeb7c2 /                       xfs     defaults        0 0
UUID=5025c7e6-262c-4930-a2be-e32ffddbdf42 /boot                   xfs     defaults        0 0
#/dev/vdb /data/brick1 xfs defaults 0 0
#/dev/vdc /data/brick2 xfs defaults 0 0
#/dev/vdd /data/brick3 xfs defaults 0 0
/dev/intelcas1-1       /data/intelcas1-1       xfs defaults 0 0
/dev/intelcas1-2       /data/intelcas1-2       xfs defaults 0 0
/dev/intelcas1-3       /data/intelcas1-3       xfs defaults 0 0

然后执行mount命令进行挂载

[root@node1 data]#  mount   -a 
[root@node1 data]# df -h
Filesystem        Size  Used Avail Use% Mounted on
/dev/vda2          50G   43G  7.2G  86% /
devtmpfs          1.9G     0  1.9G   0% /dev
tmpfs             1.9G     0  1.9G   0% /dev/shm
tmpfs             1.9G  143M  1.8G   8% /run
tmpfs             1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1         197M  113M   85M  58% /boot
tmpfs             380M     0  380M   0% /run/user/0
/dev/intelcas1-1   50G   33M   50G   1% /data/intelcas1-1
/dev/intelcas1-2   50G   33M   50G   1% /data/intelcas1-2
/dev/intelcas1-3   50G   33M   50G   1% /data/intelcas1-3

---------------------- 以上操作均需要在各个节点执行------------------------------

效果如下:
Node3:(node2 一样操作)

[root@node3 ~]# lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1  478K  0 rom  
vda    253:0    0   50G  0 disk 
├─vda1 253:1    0  200M  0 part /boot
└─vda2 253:2    0 49.8G  0 part /
vdb    253:16   0   50G  0 disk 
vdc    253:32   0   50G  0 disk 
vdd    253:48   0   50G  0 disk 
vde    253:64   0   20G  0 disk 
vdf    253:80   0   50G  0 disk 
vdg    253:96   0   50G  0 disk 
[root@node3 ~]# casadm -S -i 1 -d  /dev/vde 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added cache instance 1
[root@node3 ~]# casadm -A -i 1   -j 1 -d  /dev/vdb 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added core 1 to cache instance 1
[root@node3 ~]# casadm -A -i 1   -j 2 -d  /dev/vdc 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added core 2 to cache instance 1
[root@node3 ~]# casadm -A -i 1   -j 3 -d  /dev/vdd 
WARNING: Intel(R) CAS is running on a non-validated OS!
Successfully added core 3 to cache instance 1
[root@node3 ~]# casadm -L
WARNING: Intel(R) CAS is running on a non-validated OS!
type    id   disk       status    write policy   device
cache   1    /dev/vde   Running   wt             -
+core   1    /dev/vdb   Active    -              /dev/intelcas1-1
+core   2    /dev/vdc   Active    -              /dev/intelcas1-2
+core   3    /dev/vdd   Active    -              /dev/intelcas1-3
[root@node3 ~]# 
[root@node3 ~]# df -h        
Filesystem        Size  Used Avail Use% Mounted on
/dev/vda2          50G  3.1G   47G   7% /
devtmpfs          1.9G     0  1.9G   0% /dev
tmpfs             1.9G     0  1.9G   0% /dev/shm
tmpfs             1.9G   57M  1.8G   3% /run
tmpfs             1.9G     0  1.9G   0% /sys/fs/cgroup
/dev/vda1         197M  113M   85M  58% /boot
tmpfs             380M     0  380M   0% /run/user/0
/dev/intelcas1-1   50G   33M   50G   1% /data/intelcas1-1
/dev/intelcas1-2   50G   33M   50G   1% /data/intelcas1-2
/dev/intelcas1-3   50G   33M   50G   1% /data/intelcas1-3

七 、 启动glusterfs进行volume的创建

GlusterFS 五种卷  

  

 - Distributed:分布式卷,文件通过 hash 算法随机分布到由 bricks 组成的卷上。


 - Replicated: 复制式卷,类似 RAID 1,replica 数必须等于 volume 中 brick 所包含的存储服务器数,可用性高。
 - Striped: 条带式卷,类似 RAID 0,stripe 数必须等于 volume 中 brick 所包含的存储服务器数,文件被分成数据块,
    以 Round Robin 的方式存储在 bricks 中,并发粒度是数据块,大文件性能好。
 - Distributed Striped: 分布式的条带卷,volume中 brick 所包含的存储服务器数必须是 stripe 的倍数(>=2倍),兼顾分布式和条带式的功能。
 - Distributed Replicated: 分布式的复制卷,volume 中 brick 所包含的存储服务器数必须是 replica 的倍数(>=2倍),兼顾分布式和复制式的功能。
 -  分布式复制卷的brick顺序决定了文件分布的位置,一般来说,先是两个brick形成一个复制关系,然后两个复制关系形成分布。

 -  企业一般用后两种,大部分会用分布式复制(可用容量为 总容量/复制份数),通过网络传输的话最好用万兆交换机,万兆网卡来做。
     这样就会优化一部分性能。它们的数据都是通过网络来传输的。

[root@node1 data]# systemctl status glusterd
● glusterd.service - GlusterFS, a clustered file以上是关于基于IntelCAS加速的Glusterfs常见运维的主要内容,如果未能解决你的问题,请参考以下文章

glusterfs集群

GlusterFS原创资源

GlusterFS原创资源

线上部署GlusterFS情况调研结果

分布式文件系统---GlusterFS介绍

轨道交通云联网综合网络管理运维实践