一、概述

本文档记录了VSM Import Cluster功能验证过程及过程中遇到的问题。

二、准备

2.1.网络规划

1) Management Network:VSM控制节点对其他节点的管理网络,本例为172.16.34.0/24

2) Ceph Public Network:ceph-client <---> ceph-mon 以及ceph-client <---> ceph-osd之间的通信网络,本例为192.1.35.0/24

3) Ceph Cluster Network:ceph-osd <---> ceph-mon以及ceph-osd<---> ceph-osd之间的通信网络,本例为192.3.35.0/24

2.2.预配置描述

在启动新部署之前,需要执行某些预配置的步骤。 下面是针对VM的情况,但一般步骤也应该适用于裸机:

VSM至少需要三个存储节点和一个控制器,因为我们这次搭建的是vsm import cluster的集群,因此创建四个centos虚拟机。 其中一个将是VSM控制器,其他三个将是集群中的存储节点。 由于存储节点配置基本相同,我们只需指定并安装一个控制节点,然后将其克隆即可。对于VSM控制器。我们可以克隆存储节点,再加些配置即可。

2.3 安装ceph集群

2.3.1 ceph集群预配置

2.3.1.1创建一台有三个网卡的虚拟机。

2.3.1.2 配置网络:

1)更改/etc/sysconfig/network-scripts/ifcfg-ens32:

sed -i "s/BOOTPROTO=dhcp/BOOTPROTO=static/g" /etc/sysconfig/network-scripts/ifcfg-ens32
cat << EOF >> /etc/sysconfig/network-scripts/ifcfg-ens32
IPADDR=172.16.34.52
GATEWAY=172.16.34.524
NETMASK=255.255.0.0
DNS1=10.19.8.10
DNS2=8.8.4.4
EOF

2)添加/etc/sysconfig/network-scripts/ifcfg-ens33,/etc/sysconfig/network-scripts/ifcfg-ens35,内容分别如下

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.1.35.52
GATEWAY=192.1.35.254
NETMASK=255.255.0.0
TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens35
DEVICE=ens35
ONBOOT=yes
IPADDR=192.3.35.52
GATEWAY=192.3.35.254
NETMASK=255.255.0.0

3)更改IP后,执行:

service network restart

2.3.1.3关闭SELinux

setenforce
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.3.1.4 安装NTP和SSH服务器:

yum install -y ntp ntpdate ntp-doc
yum install -y openssh-server

2.3.1.5.更改hostname和hosts文件

hostnamectl set-hostname ceph01
cat << EOF >> /etc/hosts
192.1.35.52 ceph01
192.1.35.53 ceph02
192.1.35.54 ceph03
EOF

2.3.1.6配置安装源

1)配置阿里云的centos的源

yum install wget
yum clean all
rm -rf /etc/yum.repos.d/*.repo
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/CentOS-Base.repo
sed -i '/aliyuncs/d' /etc/yum.repos.d/epel.repo
#sed -i 's/$releasever/7.2.1511/g' /etc/yum.repos.d/CentOS-Base.repo

2)配置ceph安装源

cat << EOF >/etc/yum.repos.d/ceph.repo
[ceph]
name=Ceph packages for $basearch
baseurl= http://mirrors.aliyun.com/ceph/rpm-hammer/el7/x86_64/
enabled=
priority=
gpgcheck=
type=rpm-md [ceph-noarch]
name=Ceph noarch packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-hammer/el7/noarch/enabled=1
gpgcheck=
type=rpm-md [ceph-source]
name=Ceph source packages
baseurl=http://mirrors.aliyun.com/ceph/rpm-hammer/el7/SRPMS
enabled=
priority=
gpgcheck=
type=rpm-md
EOF

2.3.1.7关闭虚拟机并将其克隆用于第2,3个存储节点,并更改其hostname和ip

2.3.1.8 更新软件库

ceph1更新软件库并安装ceph-deploy:

非ceph1执行:

yum update

ceph1执行

 yum –y update && yum -y install ceph-deploy

2.3.1.9 配置无密码 SSH 登录 (在ceph1节点上执行即可)

1)生成 SSH 密钥对,但不要用 sudo 或 root 用户

ssh-keygen

2) 把公钥拷贝到各 Ceph 节点

ssh-copy-id root@ceph01
ssh-copy-id root@ceph02
ssh-copy-id root@ceph03

2.3.1.10.新建/root/.ssh/config (所有节点)

命令如下:

mkdir -p /root/.ssh
touch /root/.ssh/config
cat << EOF > /root/.ssh/config
Host ceph01
Hostname ceph01
User root
Host ceph02
Hostname ceph02
User root
Host ceph03
Hostname ceph03
User root
EOF

2.3.2 部署存储集群

2.3.2.1创建集群目录

在管理节点ceph1上创建一个目录,用于保存 ceph-deploy 生成的配置文件和密钥对

ssh root@ceph1
mkdir -p /home/ceph-cluster
cd /home/ceph-cluster

2.3.2.2创建一集群

下面操作在ceph1节点下操作

1. 创建集群

ceph-deploy new ceph01 ceph02 ceph03

2. 如果你有多个网卡,可以把 public network 写入 Ceph 配置文件的 [global] 段下

public network = {ip-address}/{netmask}

echo "public network = 192.1.35.0/24" | sudo tee -a ceph.conf
echo "cluster network = 192.2.35.0/24" | sudo tee -a ceph.conf

3 安装 Ceph

ceph-deploy install ceph01 ceph02 ceph03 --no-adjust-repos

4.配置初始监视器、并收集所有密钥

ceph-deploy mon create-initial

2.3.3添加osd

ceph-deploy disk zap ceph01:/dev/sdb
ceph-deploy osd prepare ceph01:/dev/sdb
ceph-deploy osd activate ceph01:/dev/sdb1 ceph-deploy disk zap ceph02:/dev/sdb
ceph-deploy osd prepare ceph02:/dev/sdb
ceph-deploy osd activate ceph02:/dev/sdb1 ceph-deploy disk zap ceph03:/dev/sdb
ceph-deploy osd prepare ceph03:/dev/sdb
ceph-deploy osd activate ceph03:/dev/sdb1

2.4 vsm-controller节点安装VSM软件

2.4.1 安装前准备

克隆一个虚拟机,作为vsm-controller节点,进行相应的配置。ip、hostname、/etc/hosts/、ssh无密访问、ceph源。

1.设置IP

1)更改/etc/sysconfig/network-scripts/ifcfg-ens32:

sed -i "s/BOOTPROTO=dhcp/BOOTPROTO=static/g" /etc/sysconfig/network-scripts/ifcfg-ens32
cat << EOF >> /etc/sysconfig/network-scripts/ifcfg-ens32
IPADDR=172.16.34.51
GATEWAY=172.16.34.524
NETMASK=255.255.0.0
DNS1=10.19.8.10
DNS2=8.8.4.4
EOF

2)添加/etc/sysconfig/network-scripts/ifcfg-ens33,内容如下

TYPE=Ethernet
BOOTPROTO=static
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=ens33
DEVICE=ens33
ONBOOT=yes
IPADDR=192.1.35.51
GATEWAY=192.1.35.254
NETMASK=255.255.0.0

2.更改hostname

hostnamectl set-hostname ceph-vsm-console

3.设置安装源

见2.3.1.6 节 配置安装源

4.配置主机名解析 在所有节点上配置/etc/hosts

cat << EOF >> /etc/hosts
172.16.34.51 ceph-vsm-console
172.16.34.52 ceph01
172.16.34.53 ceph02
172.16.34.54 ceph03 192.1.35.51 ceph-vsm-console
192.1.35.52 ceph01
192.1.35.53 ceph02
192.1.35.54 ceph03
EOF

5.配置与ceph集群ssh无密访问

ssh-keygen
ssh-copy-id root@ceph01
ssh-copy-id root@ceph02
ssh-copy-id root@ceph03

6.关闭SELinux及iptables 在所有节点上执行一下配置 

setenforce   
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

2.4.2 安装VSM软件

2.4.2.1下载released版本

wget https://github.com/01org/virtual-storage-manager/releases/download/v2.1.0/2.1.0-336_centos7.tar.gz

2.4.2.2解压

tar -xzvf 2.1.-336_centos7.tar.gz

解压后文件结构如下:

# tree 2.1.0-336

2.1.0-336

├── CHANGELOG.md

├── CHANGELOG.pdf

├── get_pass.sh

├── INSTALL.md

├── INSTALL.pdf

├── installrc

├── install.sh

├── LICENSE

├── manifest

│   ├── cluster.manifest.sample

│   └── server.manifest.sample

├── NOTICE

├── prov_node.sh

├── README.md

├── RELEASE

├── rpms.lst

├── uninstall.sh

├── VERSION

└── vsmrepo

├── python-vsmclient-2.1.0-336.noarch.rpm

├── repodata

│   ├── 09c2465aa2670cc6b31e3eda4818b2983eeab0432965a184d0594a3f4669d885-primary.sqlite.bz2

│   ├── 52d75398c3b713a4d7bb089c9fef6d13e7fd0d0b305a86b5dff117c720990507-other.xml.gz

│   ├── 8299117fe070fbbb4e3439d0643a074fbe77a17da9cbaf9abd77e1f758050f38-filelists.sqlite.bz2

│   ├── aa6bec470daa2eb404e71a228252eaa5712c84deaf2052ed313afd2c5948d826-other.sqlite.bz2

│   ├── d8b7b087bd3b68158cc2d7e44cc5bad17b3b299351a57f81c2d791f9043e0998-primary.xml.gz

│   ├── dfc4f61fdf63c9903e137c2ae20f54186876e672ad84b24a9b9ab8d368931d62-filelists.xml.gz

│   └── repomd.xml

├── vsm-2.1.0-336.noarch.rpm

├── vsm-dashboard-2.1.0-336.noarch.rpm

└── vsm-deploy-2.1.0-336.x86_64.rpm

3 directories, 28 files

2.4.2.3 修改installrc文件,填入controller节点ip和agent节点ip

AGENT_ADDRESS_LIST="172.16.34.56 172.16.34.57 172.16.34.58" CONTROLLER_ADDRESS="172.16.34.55"

2.4.2.4配置VSM信息

1).在manifest文件夹中新建四个文件夹分别以四个ip地址命名

manifest/

├── 172.16.34.51

├── 172.16.34.52

├── 172.16.34.53

├── 172.16.34.54

├── cluster.manifest.sample

└── server.manifest.sample

2). 把cluster.manifest.sample拷到controller节点ip的文件夹中,重命名成cluster.manifest。

修改里面的storage_class、storage_group、addr等信息,一般是你使用哪种硬盘就改成哪种,ip地址修改成相应的网段;

cp cluster.manifest.sample 172.16.34.51
mv 172.16.34.55/cluster.manifest.sample 172.16.34.51/cluster.manifest

cluster.manifest 更改后如下:

[storage_class]
vm_sas [storage_group]
#format: [storage group name] [user friendly storage group name] [storage class]
vm_sas vm_sas vm_sas [cluster]
vsm_ceph [file_system]
xfs [management_addr]
172.16.34.0/ [ceph_public_addr]
192.1.35.0/ [ceph_cluster_addr]
192.2.35.0/ [settings]
storage_group_near_full_threshold
storage_group_full_threshold
ceph_near_full_threshold
ceph_full_threshold
pg_count_factor
heartbeat_interval
osd_heartbeat_interval
osd_heartbeat_grace [ec_profiles] [cache_tier_defaults]

3).把Server.manifest.sample拷贝到其余三个节点ip的文件夹中。修改vsm_controller_ip、role和硬盘路径。具体配置信息可参考官网的配置文档。

cp server.manifest.sample 172.16.34.52
mv 172.16.34.52/cluster.manifest.sample 172.16.34.51/cluster.manifest

cluster.manifest 更改后如下:

[vsm_controller_ip]

172.16.34.51

[role]

storage

monitor

[auth_key]

f0f0603a754a432daa0edbaf28229bae-d19eed1d25fd46699ba0717c7b95ebd2

[vm_sas]

#format [sas_device]  [journal_device]

/dev/sdb1 /dev/sdb2

4)设置好VSM信息后,manifest文件夹结构如下:

[root@console manifest]# tree

.

├── 172.16.34.51

│   └── cluster.manifest

├── 172.16.34.52

│   └── server.manifest

├── 172.16.34.53

│   └── server.manifest

├── 172.16.34.54

│   └── server.manifest

├── cluster.manifest.sample

└── server.manifest.sample

4 directories, 6 files

2.4.2.5 安装VSM 软件

./install.sh -v 2.1 --check-dependence-package
./install.sh -v 2.1 --controller 172.16.34.51

2.5 ceph节点安装VSM软件

2.5.1 安装VSM软件

./install.sh -v 2.1 --agent agent1-ip,agent2-ip,agent3-ip

./install.sh -v 2.1 --agent 172.16.34.52,172.16.34.53,172.16.34.54

2.5.2 在各ceph节点上启动vms-agent

在ceph各节点执行

python /usr/bin/vsm-agent --config-file /etc/vsm/vsm.conf --log-file /var/log/vsm/vsm-agent.log >& &

VSM Import Cluster功能验证一(准备篇)的更多相关文章

  1. VSM Import Cluster功能验证二(导入篇)

    三 vsm import cluster 3.1登录vsm web UI 登陆 VSM web UI,https://172.16.34.51/dashboard/vsm/,点击Cluster Man ...

  2. (转)[jQuery]使用jQuery.Validate进行客户端验证(初级篇)——不使用微软验证控件的理由

    以前在做项目的时候就有个很大心病,就是微软的验证控件,虽然微软的验证控件可以帮我们完成大部分的验证,验证也很可靠上手也很容易,但是我就是觉得不爽,主要理由有以下几点: 1.拖控件太麻烦,这个是微软控件 ...

  3. 通过扩展改善ASP.NET MVC的验证机制[使用篇]

    原文:通过扩展改善ASP.NET MVC的验证机制[使用篇] ASP.NET MVC提供一种基于元数据的验证方式是我们可以将相应的验证特性应用到作为Model实体的类型或者属性/字段上,但是这依然具有 ...

  4. 利用JS提交表单的几种方法和验证(必看篇)

    第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <scr ...

  5. [jQuery]使用jQuery.Validate进行客户端验证(初级篇)

    以前在做项目的时候就有个很大心病,就是微软的验证控件,虽然微软的验证控件可以帮我们完成大部分的验证,验证也很可靠上手也很容易,但是我就是觉得不爽,主要理由有以下几点: 1.拖控件太麻烦,这个是微软控件 ...

  6. kafka 消费组功能验证以及消费者数据重复数据丢失问题说明 3

    原创声明:作者:Arnold.zhao 博客园地址:https://www.cnblogs.com/zh94 背景 上一篇文章记录了kafka的副本机制和容错功能的说明,本篇则主要在上一篇文章的基础上 ...

  7. Ascend Pytorch算子功能验证

    Ascend Pytorch算子功能验证 编写测试用例 以add算子为例,测试脚本文件命名为:add_testcase.py.以下示例仅为一个简单的用例实现,具体算子的实现,需要根据算子定义进行完整的 ...

  8. SuperMap-iServer-单点登录功能验证(CAS)

    SuperMap-iServer-单点登录功能验证(CAS) 1.测试目的: 验证SuperMap-iServer使用CAS单点登录的功能是否正常. 2.测试环境: SuperMap-iServer8 ...

  9. 关于WEB Service&WCF&WebApi实现身份验证之WebApi篇

    之前先后总结并发表了关于WEB Service.WCF身份验证相关文章,如下: 关于WEB Service&WCF&WebApi实现身份验证之WEB Service篇. 关于WEB S ...

随机推荐

  1. hibernate中 criteria.setProjection(Projections.rowCount()).uniqueResult()为null的Bug

    在hibernate中,在查询总数时,会使用如下方法; public Integer getCount(final DetachedCriteria detachedCriteria) {       ...

  2. Hash表算法详解

    Hash表定义 散列表(Hash table,也叫哈希表),是根据关键字值(Key value)直接进行访问的数据结构.也就是说,它通过把关键字(关键字通过Hash算法生成)映射到表中一个位置来访问记 ...

  3. plsql中的光标

    操作oracle数据库效率最高的语言就是plsql程序,故而把访问数据库的代码写成plsql的执行效率要高于java,c ,c++等代码

  4. ABAP内表数据和JSON格式互转

    本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...

  5. Android中自定义ListView实现上拉加载更多和下拉刷新

    ListView是Android中一个功能强大而且很常用的控件,在很多App中都有ListView的下拉刷新数据和上拉加载更多这个功能.这里我就简单记录一下实现过程. 实现这个功能的方法不止一个,Gi ...

  6. linux系统文件属性详解

    一.文件信息 当创建一个文件的时候,系统保存了有关该文件的全部信息,包括: 文件的位置: 文件类型: 文件长度: 哪位用户拥有该文件,哪些用户可以访问该文件: 硬连接计数: 文件的修改时间: 文件的权 ...

  7. 利用SHELL脚本修改当前环境变量

    转自http://www.chinaunix.net/old_jh/7/21485.html 1.背景 ---- 在日常的工作中,为了设置一大批环境变量,我们通常编辑了一个shell程序,包含了多个的 ...

  8. [C++] Const Summary (mind map)

    Const Summary

  9. 解决ImportError: libmysqlclient_r.so.16: cannot open shared object file-乾颐堂

    在开发一个python项目是,需要用到mysql,但是, 安装完mysql-python后import加载模块提示以下错误: ImportError: libmysqlclient_r.so.16: ...

  10. CentOS7.4配置SSH登录密码与密钥身份验证踩坑

    简单记录,自用CentOS7.4虚拟机与ALiYunVPS,在配置ssh登录身份验证时碰到的问题. 阿里云VPS:因为在重置磁盘时选择了密钥对的身份验证方式,因此VPS中的CentOS7.4中的 /e ...