在天翼云上申请了OOS,通过在本地vsphere虚拟化集群中一台VM上安装部署对象存储网关软件+NFS服务器,最终实现把天翼云上的OOS挂载进vsphere6.7集群的存储资源池。
一、组网拓扑
二、实现主要思路
1)、为什么这么玩?
为了实现将对象存储当成本地硬盘的效果,我尝试了很多方法,最后成功的只有一种,先介绍我失败的方法:
1、通过S3FS将对象存储挂载到VM的目录上,然后通过NFS将目录挂载共享,此时NFS客户端加载没有问题,但是向共享目录保存文件时大量出错,失败;
2、直接通过S3FS将对象存储挂载到本地目录,考虑分片与断点续传以及本地缓存,做了大量根据s3fs的调优,结果还是失败,给出我的调优后命令:
s3fs -o allow_other nfs2oos /home/oos/nfs2oos -o url=http://oos-hbwh.ctyunapi.cn/ -o use_cache=/oostmp -o parallel_count=10 -o stat_cache_expire=3600 -o max_stat_cache_size=100000 -o connect_timeout=30 -o readwrite_timeout=40 -o nomultipart
3、VM上安装云存储网关程序,通过云存储网关程序配置将oos桶映射为iSCSI的lun,在vsphere上通过iSCSI方法直接添加失败,此时vsphere可以找到云存储网关的启动器,但是无法找到lun资源;
2)、成功的主要思路
1、云上操作:在云上申请oos服务,创建bucket,记录好访问控制的ak与sk信息,记录好endpoint信息;
2、本地vsphere上安装一个centos7的vm,在centos7上部署安装云存储网关软件;
3、通过云存储网关初始化网关及创建lun;
4、在云存储网关同一台vm安装配置nfs服务器软件,如果内网已经有nfs服务器则在nfs服务器上安装 iscsi-initiator-utils软件;
5、nfs上通过iscsiadm 找到并登陆iSCSI;
6、格式化iSCSI磁盘并将磁盘挂载到本地数据目录;
7、将iSCSI挂载的本地数据目录通过nfs以读写方式挂载成nfs服务;
8、在vsphere集群中新建存储以nfs3.0的形式找到nfs资源,挂载成功;
三、实现步骤
1、云上操作
第一步创建bucket容器
这一步是通过云存储网关在vm上创建的,无需在云侧手工操作,放在这里是因为统一云侧信息展示;
2、本地vm上安装部署云存储网关软件并初始化网关
因为云存储网关软件需要java环境,所以需要vm上安装java1.8运行环境
wget https://www.oracle.com/webapps/redirect/signon?nexturl=https://download.oracle.com/otn/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz
tar -xvf jdk-8u202-linux-x64.tar.gz -C /opt/java/
vi /etc/profile
export PATH=${PATH}:/opt/java/jdk1.8.0_202/bin
验证java
java -version
设置本地时间,检查时钟同步
timedatectl set-timezone Asia/Shanghai
timedatectl status
操作系统防火墙添加iSCSI端口
firewall-cmd –permanent –add-port=3260/tcp && firewall-cmd –reload
云存储网关安装部分
unzip CTYUN_OOS_Gateway_version.zip
cd /home/oos/CTYUN_OOS_Gateway_1.4.6
chmod a+x OOS_Gateway
./OOS_Gateway setup –初始化
./OOS_Gateway create-lun –创建卷
云存储网关管理部分
停止网关 ./OOS_Gateway stop
解压缩新版本 unzip CTYUN_OOS_Gateway_xx.zip
cd 解压缩目录 chmod a+x OOS_Gateway
升级 ./OOS_Gateway upgrade
3、iSCSI客户端部分
yum -y install iscsi-initiator-utils -y
iscsiadm -m discovery -t st -p 10.37.10.3
iscsiadm -m node -T iqn.2012-08.cn.ctyunapi.oos:iscsi2oos.xfvip-oos-lun-01 -p 10.37.10.3 -l
iscsiadm -m node
iscsiadm -m session
本地挂载
parted -s /dev/sdc mklabel gpt mkpart primary 0% 100%
格式化挂载磁盘
mkfs.xfs /dev/sdc
挂载磁盘
mount /home/oos/nfs2oos /dev/sdc1
显示本地挂载
lsblk
4、nfs服务器安装配置部分
yum install nfs-utils rpcbind -y
systemctl enable nfs-server
systemctl enable rpcbind
systemctl enable nfs-lock
systemctl enable nfs-idmap
systemctl start rpcbind
systemctl start nfs-server
systemctl start nfs-lock
systemctl start nfs-idmap
防火墙部分
firewall-cmd –zone=public –permanent –add-service={rpc-bind,mountd,nfs}firewall-cmd –reloadfirewall-cmd –list-all
定义nfs共享目录
vi /etc/exports
/home/oos/nfs2oos *(rw,fsid=1,sync,no_root_squash,no_all_squash)
服务加载
exportfs -rv
5、vsphere集群存储挂载
通过服务器侧showmount -a显示vsphere挂载情况
添加成功后,将一台虚拟机通过存储迁移至oos存储盘,运行效果如下: