使用CEPH提供块设备

Yum

http://mirrors.163.com

http://mirrors.aliyun.com

http://mirrors.sohu.com

 

 

点击图中CentOS7就可以下载网易的repo文件,将其拷贝到/etc/yum.repos.d/目录下就能在线使用网易的源了。

 

EPEL: Extra Packages for Enterprise Linux

 

点击上图中的链接,将会下载一个名为epel-release-latest-7.noarch.rpm的软件包,只要把它安装上,/etc/yum.repos.d/目录下将会出现新的repo文件

 

 

使用CEPH提供块设备

1、CEPH默认有一个存储池

[root@node1 ceph_conf]# ceph osd lspools

2、为了能够给客户端提供块设备,需要创建image

3、在默认的池中创建一个10GB大小,名为demo-image的镜像

[root@node1 ceph_conf]# rbd create demo-image --image-feature layering --size 10G

4、另一种创建方法:指定在rbd这个池里创建一个名为image的镜像

[root@node1 ceph_conf]# rbd create rbd/image --image-feature layering --size 10G

5、列出镜像

[root@node1 ceph_conf]# rbd list

6、查看image的详情

[root@node1 ceph_conf]# rbd info image

7、调整image镜像的大小为7GB(体验而已,不推荐减小操作)

[root@node1 ceph_conf]# rbd resize --size 7G image --allow-shrink

8、调整image镜像的大小为15GB

[root@node1 ceph_conf]# rbd resize --size 15G image 

[root@node1 ceph_conf]# rbd info image

 

客户端使用RBD块设备

1、在Client上安装客户端软件包

[root@client ~]# yum install -y ceph-common

2、把配置文件和用户密钥文件拷贝给客户端

[root@node1 ceph_conf]# scp /etc/ceph/ceph.conf 192.168.4.10:/etc/ceph/

[root@node1 ceph_conf]# scp /etc/ceph/ceph.client.admin.keyring 192.168.4.10:/etc/ceph/

3、客户端把CEPHimage镜像作为本地磁盘使用

[root@client ~]# rbd list

[root@client ~]# rbd map image

[root@client ~]# lsblk   多出一个15GBrbd0

4、使用RBD块设备

[root@client ~]# mkfs.xfs /dev/rbd0 

[root@client ~]# mount /dev/rbd0 /mnt/

[root@client ~]# df -h /mnt/

[root@client ~]# echo "hello world" >> /mnt/hi.txt

[root@client ~]# cat /mnt/hi.txt

 

5、查看image镜像的快照

[root@client ~]# rbd snap ls image

6、为image创建一个名为image-snap1的快照

[root@client ~]# rbd snap create image --snap image-snap1

[root@client ~]# rbd snap ls image

7、模拟误删除

[root@client ~]# rm  -f  /mnt/hi.txt 

8、还原快照,以还原误删除的文件

(1)卸载镜像

[root@client ~]# umount /mnt/

(2)使用image-snap1还原快照

[root@client ~]# rbd snap rollback image --snap image-snap1

(3)挂载镜像,查看是否已还原

[root@client ~]# mount /dev/rbd0 /mnt/

[root@client ~]# ls /mnt/

[root@client ~]# cat /mnt/hi.txt 

 

通过快照创建镜像

1、设置image-snap1为保护状态

[root@client ~]# rbd snap protect image --snap image-snap1

2、使用image的快照image-snap1克隆一个新的image-clone镜像

[root@client ~]# rbd clone image --snap image-snap1 image-clone --image-feature layering

3、查看新镜像与父镜像的关系

[root@client ~]# rbd info image-clone  

找到它的parentrbd/image@image-snap1

4、合并镜像,使得image-clone没有父镜像,它可以独立使用

[root@client ~]# rbd flatten image-clone

[root@client ~]# rbd info image-clone  此时,它已没有parent

 

删除挂载

[root@client ~]# rbd showmapped  可以查看到镜像到本地的块设备映射

[root@client ~]# umount /mnt/

[root@client ~]# rbd unmap image   取消映射

[root@client ~]# rbd showmapped

[root@client ~]# lsblk   发现rbd0已经不存在了

 

删除快照

[root@client ~]# rbd snap ls image  列出image的快照

[root@client ~]# rbd snap unprotect image --snap image-snap1

[root@client ~]# rbd snap rm image --snap image-snap1

 

删除镜像

[root@client ~]# rbd rm image

[root@client ~]# rbd list

 

 

 

安装KVM虚拟机,磁盘存储在CEPH集群上

1、将物理主机设置成为CEPH客户端

[root@room8pc16 ~]# yum install -y ceph-common

[root@room8pc16 ~]# scp 192.168.4.1:/etc/ceph/ceph.conf /etc/ceph/

[root@room8pc16 ~]# scp 192.168.4.1:/etc/ceph/ceph.client.admin.keyring /etc/ceph/

2、新建一个名为vm1-image的镜像,作为KVM虚拟机的磁盘

[root@room8pc16 ~]# rbd create vm1-image --image-feature layering --size 10G

3、查看镜像信息

[root@room8pc16 ~]# rbd info vm1-image

[root@room8pc16 ~]# qemu-img info rbd:rbd/vm1-image

4、在virt-manager图形界面中,创建新的虚拟机,名为rhel7-ceph1,按正常步骤创建即可。当虚拟机创建完成后,将会启动,此时,点击强制关机。

5、KVM虚拟机在使用CEPH的时候,需要认证,我们可以创建一个secret(相当于通行证)

(1)在物理主机上创建一临时文件

[root@room8pc16 ~]# vim /tmp/secret.xml

    

        client.admin secret

    

(2)利用临时文件生成secret通行证信息

[root@room8pc16 ~]# virsh secret-list  查看secret

[root@room8pc16 ~]# virsh secret-define --file /tmp/secret.xml 

[root@room8pc16 ~]# virsh secret-list   已经生成secret

6、将kvmsecretceph的管理员用户client.admin进行关联

(1)查看管理员的keyring

[root@room8pc16 ~]# cat /etc/ceph/ceph.client.admin.keyring 

(2)关联secretkeyring

[root@room8pc16 ~]# virsh secret-set-value --secret f59c54be-d479-41a6-a09c-cf2f7ffc57cb --base64 AQDaDSpboImwIBAAzX800q+H0BCNq9xq2xQaJA==

 

7、导出rhel7-ceph1xml文件

[root@room8pc16 ~]# virsh dumpxml rhel7-ceph1 > /tmp/vm.xml

8、修改vm.xml

[root@room8pc16 ~]# vim /tmp/vm.xml

找到以下内容:

    

      

      

      

      

将其改为

    network' device='disk'>

      raw'/>

      

          

      

      

          

      

      

      

    

9、在virt-manager中将rhel7-ceph1删除

10、使用修改过的vm.xml生成虚拟机

[root@room8pc16 ~]# virsh  define  /tmp/vm.xml

Virt-manager中将会出现rhel7-ceph1虚拟机

11、修改虚拟机配置,把IDE CDROM1连接光盘文件,然后在Boot Options中勾选启用引导菜单,把光盘作为第一启动介质

 

 

使用CEPH FS为客户端提供文件系统(相当于NFS),注意,这种方式还不成熟,不建议用在生产环境下。

1、准备node4作为MDS(元数据服务器)

2、在node4上安装软件包

[root@node4 ~]# yum install -y ceph-mds

3、在node1上配置node4MDS

[root@node1 ceph_conf]# cd /root/ceph_conf/  进入配置文件目录

4、同步adminkeyringnode4

[root@node1 ceph_conf]# ceph-deploy admin node4

5、在NODE4上启用mds服务(在node1上操作)

[root@node1 ceph_conf]# ceph-deploy mds create node4

6、创建存储池。至少有两个池,一个用于存储数据,一个用于存储元数据。

[root@node1 ceph_conf]# ceph osd pool create cephfs_data 128

[root@node1 ceph_conf]# ceph osd pool create cephfs_metadata 128

注:128是指,池中有128PG(归置组)

PG的说明:http://www.wzxue.com/ceph-osd-and-pg/

7、查看MDS状态

[root@node1 ceph_conf]# ceph mds stat

8、创建文件系统

[root@node1 ceph_conf]# ceph fs new myfs1 cephfs_metadata cephfs_data

9、查看文件系统

[root@node1 ceph_conf]# ceph fs ls

10、客户端挂载CEPH FS

[root@client ~]# mkdir /mnt/cephfs   ceph auth list  查看adminkey

[root@client ~]# mount -t ceph 192.168.4.1:6789:/ /mnt/cephfs/ -o name=admin,secret=AQDaDSpboImwIBAAzX800q+H0BCNq9xq2xQaJA==

[root@client ~]# df -h /mnt/cephfs/

 

 

 

对象存储

1、什么是对象,参见:http://storage.ctocio.com.cn/281/12110781.shtml

2、新建虚拟机,用于RGW

node5.tedu.cn 192.168.4.5 

需要node1可以免密登陆到node5Node5也需要cephyum源。Node1可以通过名字访问node5

3、在node1远程为node5安装RGW

[root@node1 ceph_conf]# ceph-deploy install --rgw node5

4、同步keyring等文件到node5

[root@node1 ceph_conf]# ceph-deploy admin node5

5、启动RGW服务

[root@node1 ceph_conf]# ceph-deploy rgw create node5

[root@node5 ~]# systemctl status ceph-radosgw@\*

6、RGW内置了一个WEB服务器civetweb。为了用户访问方便,将RGW端口改为80(默认是7480

[root@node5 ~]# vim /etc/ceph/ceph.conf 追加以下内容

[client.rgw.node5]

host=node5

rgw_frontends="civetweb port=80"

[root@node5 ~]# systemctl restart ceph-radosgw@\*   重启服务

7、客户端验证

[root@client ~]# curl http://192.168.4.5

 

RGW客户端的使用

1s3是亚马逊提供的一个命令行客户端

[root@client ~]# rpm -ihv s3cmd-2.0.1-1.el7.noarch.rpm 

2、创建用于RGW访问的用户

[root@node5 ~]# radosgw-admin user create --uid="testuser" --display-name="First User"  注意以下输出的信息

"keys": [

        {

            "user": "testuser",

            "access_key": "2OEWOIA7G6GZZ22UI0E4",

            "secret_key": "FrOzh6NQC1Ak3C4SXNSaLAEFPy5SyPu9MC02mtdm"

        }

    ],

3、在客户端上配置s3

[root@client ~]# s3cmd --configure

Access Key:2OEWOIA7G6GZZ22UI0E4

Secret Key: FrOzh6NQC1Ak3C4SXNSaLAEFPy5SyPu9MC02mtdm

Default Region [US]:   注意直接回车,不要改

S3 Endpoint [s3.amazonaws.com]: 192.168.4.5

DNS-style bucket+hostname:port template for accessing a bucket [%(bucket)s.s3.amazonaws.com]:  %(bucket)s.192.168.4.5

When using secure HTTPS protocol all communication with Amazon S3

servers is protected from 3rd party eavesdropping. This method is

slower than plain HTTP, and can only be proxied with Python 2.7 or newer

Use HTTPS protocol [Yes]: No

Test access with supplied credentials? [Y/n] y

Save settings? [y/N] y

配置文件最终保存在了/root/.s3cfg

4、客户端配置完成,就可以执行上传、下载、删除等操作了

[root@client ~]# s3cmd ls  查看

[root@client ~]# s3cmd mb s3://my_bucket  创建一个容器(文件夹)

[root@client ~]# s3cmd put /var/log/messages s3://my_bucket  上传文件

[root@client ~]# s3cmd ls s3://my_bucket  查看my_bucket中的内容

[root@client ~]# s3cmd get s3://my_bucket/messages /tmp/  下载

[root@client ~]# s3cmd del  s3://my_bucket/messages  删除

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(cluster)