Cluster05 - 块存储应用案例 分布式文件系统 对象存储

一、块存储应用案例

目的:

KVM虚拟机调用Ceph镜像作为虚拟机的磁盘。

1.1 准备实验环境

1.1.1 创建磁盘镜像

•  为虚拟机创建磁盘镜像
[root@node1    ~]#    rbd    create    vm1-image    --image-feature        layering    --size    10G    
[root@node1    ~]#    rbd    create    vm2-image    --image-feature        layering    --size    10G    
•  查看镜像
[root@node1    ~]#    rbd        list    
[root@node1    ~]#    rbd        info        vm1-image    
[root@node1    ~]#    qemu-img        info        rbd:rbd/vm1-image    
image:    rbd:rbd/vm1-image    
file    format:    raw    
virtual    size:    10G    (10737418240    bytes)    
disk    size:    unavailable

1.1.2 Ceph认证账户

•  Ceph默认开启用户认证,客户端需要账户才可以访问
–  默认账户名称为client.admin,key是账户的密钥
–  可以使用ceph auth添加新账户(案例我们使用默认账户)

[root@node1    ~]#    cat    /etc/ceph/ceph.conf                                         //配置文件
[global]    
mon_initial_members    =    node1,    node2,    node3    
mon_host    =    192.168.2.10,192.168.2.20,192.168.2.30    
auth_cluster_required    =    cephx                         //开启认证
auth_service_required    =    cephx                        //开启认证    
auth_client_required    =    cephx                           //开启认证    
[root@node1    ~]#    cat    /etc/ceph/ceph.client.admin.keyring                //账户文件
[client.admin]    
    key    =    AQBTsdRapUxBKRAANX^eNUyoEmQHveb75bISg==         //账户key值

1.1.3 部署客户端环境

•  注意:这里使用真实机当客户端!!!
•  客户端需要安装ceph-common软件包
•  拷贝配置文件(否则不知道集群在哪)
•  拷贝连接密钥(否则无连接权限)
[root@room9pc01    ~]#    yum    -y        install    ceph-common    
[root@room9pc01    ~]#    scp    192.168.4.11:/etc/ceph/ceph.conf        /etc/ceph/    
[root@room9pc01    ~]#    scp    192.168.4.11:/etc/ceph/ceph.client.admin.keyring    /etc/ceph/    

1.2 创建KVM虚拟机

1.2.1 创建初始化虚拟机

•  使用virt-manager创建2台普通的KVM虚拟机
–  这里以1个虚拟机为例
[root@room9pc01    ~]#    virt-manager    

Cluster05 - 块存储应用案例 分布式文件系统 对象存储_第1张图片                                     Cluster05 - 块存储应用案例 分布式文件系统 对象存储_第2张图片

•  创建虚拟机后,不着急启动虚拟机(关闭虚拟机)

Cluster05 - 块存储应用案例 分布式文件系统 对象存储_第3张图片                                                        Cluster05 - 块存储应用案例 分布式文件系统 对象存储_第4张图片

1.2.2 配置libvirt secret

•  KVM虚拟机需要使用librbd才可以访问ceph集群
•  Librbd访问ceph又需要账户认证
•  所以这里,我们需要给libvirt设置账户信息

Cluster05 - 块存储应用案例 分布式文件系统 对象存储_第5张图片

•  编写账户信息文件(真实机操作)
[root@room9pc01    ~]#    vim    secret.xml                                      //新建临时文件,内容如下
    
                   
                        client.admin    secret    
                   
    
•  使用XML配置文件创建secret
[root@room9pc01    ~]#    virsh    secret-define    --file    secret.xml    
733f0fd1-e3d6-4c25-a69f-6681fc19802b                                
//随机的UUID,这个UUID对应的有账户信息

•  查看账户信息文件(真实机操作)
[root@room9pc01    ~]#    ceph    auth    get-key    client.admin        
//获取client.admin的key,或者直接查看密钥文件
[root@room9pc01    ~]#    cat    /etc/ceph/ceph.client.admin.keyring    
•  设置secret,添加账户的密钥
[root@room9pc01]    virsh    secret-set-value    \    
--secret    733f0fd1-e3d6-4c25-a69f-6681fc19802b    \    
--base64    AQBTsdRapUxBKRAANX^eNUyoEmQHveb75bISg    
//这里secret后面是之前创建的secret的UUID
//base64后面是client.admin账户的密码
//现在secret中既有账户信息又有密钥信息

1.2.3 虚拟机的XML配置文件

•  每个虚拟机都会有一个XML配置文件,包括:
–  虚拟机的名称、内存、CPU、磁盘、网卡等信息
[root@room9pc01    ~]#    vim    /etc/libvirt/qemu/vm1.xml    
//修改前内容如下
    
                            
                            
                            
                         slot='0x07'    funcOon='0x0'/>    
                

•  不推荐直接使用vim修改配置文件
•  推荐使用virsh edit修改配置文件
[root@room9pc01]    virsh    edit    vm1                                            //vm1为虚拟机名称

//修改后的内容如下


                 
                   
                 
     

     
         
     

     
     


   
 

•  关键词说明
    
                                                    
[root@client    ~]#    s3cmd    ls    
2018-05-09    08:14    s3://my_bucket    
[root@client    ~]#    s3cmd    put    /var/log/messages    s3://my_bucket/log/  

3.客户端测试
[root@client    ~]#    s3cmd    ls    
2018-05-09    08:14    s3://my_bucket    
[root@client    ~]#    s3cmd    ls    s3://my_bucket    
DIR    s3://my_bucket/log/    
[root@client    ~]#    s3cmd    ls    s3://my_bucket/log/    
2018-05-09    08:19    309034    s3://my_bucket/log/messages        
4.测试下载功能
[root@client    ~]#    s3cmd    get    s3://my_bucket/log/messages    /tmp/    
5.测试删除功能
[root@client    ~]#    s3cmd    del    s3://my_bucket/log/messages     

你可能感兴趣的:(Cluster)