在天翼雲上申請了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 --reload
firewall-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存儲盤,運行效果如下: