设为首页 收藏本站
查看: 1292|回复: 0

[经验分享] 分布式文件系统ceph

[复制链接]

尚未签到

发表于 2019-2-2 06:10:50 | 显示全部楼层 |阅读模式
ceph是在linux kernel 2.6.34后加入内核的,虽然目前还没有大规模的进入生产环境 但是它进入linux的内核 我想ceph会非常有前途的 ,共享出来供大家一起学习探讨


试验环境及拓扑

HP dell360 G5

contos 5.3 x86_64

172.19.100.200  mon01
172.19.100.202  ceph02
172.19.100.201  ceph01
172.19.100.211  osd-01
172.19.100.212  osd-02
172.19.100.213  osd-03

拓扑:

file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/ksohtml/wps_clip_image-18430.png


1.了解ceph
http://www.ibm.com/developerworks/cn/linux/l-ceph/ 这篇文章写的很好 作者比较系统的介绍了ceph的目标 架构 和组件等 图文并茂非常详细。

2.升级linux内核
我使用的是linux 2.6.35
先到 www.kernel.org 下载一个内核源码文件
解压内核文件
  
#tar xvfj linux.2.6.35.tar.bz2


拷贝到相应的目录
mon01上创建文件系统 mkcephfs会在配置文件中所定义的服务器进行配置
  
#mkcephfs -c /usr/local/etc/ceph/ceph.conf --allhosts -v

启动所有的服务器
  
#/etc/init.d/ceph -a start

4. 配置客户端 客户端内核同样需要内核支持ceph文件系统
  
#modprobe -l|grep ceph
/lib/modules/2.6.34.2/kernel/fs/ceph/ceph.ko
#modprobe  ceph
#mkdir /mnt/ceph
#mount -t ceph 172.19.100.200:/ /mnt/ceph   #这里的ip地址是你mon01的地址

5.  mon几个简单的监控命令



#ceph mon stat -c /usr/local/etc/ceph/ceph.conf   查看mon server 状态
#ceph mds stat -c /usr/local/etc/ceph/ceph.conf    查看mds server 状态
#ceph ods stat -c /usr/local/etc/ceph/ceph.conf    查看ods server 状态
ceph osd out n -c /usr/local/etc/ceph/ceph.conf    osd server n 移除集群
ceph osd out n -c /usr/local/etc/ceph/ceph.conf    osd server n 加入集群




#mv linux2.6.35 /usr/src/

定制内核
#cd /usr/src/linux-2..35
#make meunconfig


因为只是测试ceph所有只要修改以下内容
File systems  --->
                  
  • Network File Systems  --->
        Ceph distributed file system (EXPERIMENTAL)


  •      Include file:line in ceph debug output

    修改.config文件 # CONFIG_SYSFS_DEPRECATED_V2 is not set
    改为 CONFIG_SYSFS_DEPRECATED_V2=y
    开始编译内核和相应的模块
    #make bzImage
    #make modules && make modules_install
    #make install

    会出现些错误不用去理会
    sh /usr/src/linux-2.6.35/arch/x86/boot/install.sh 2.6.35 arch/x86/boot/bzImage \
                    System.map "/boot"
    WARNING: No module megasr found for kernel 2.6.35, continuing anyway
    WARNING: No module megasr found for kernel 2.6.35, continuing anyway
    WARNING: No module megasr found for kernel 2.6.35, continuing anyway
    WARNING: No module dm-mem-cache found for kernel 2.6.35, continuing anyway
    WARNING: No module dm-message found for kernel 2.6.35, continuing anyway
    WARNING: No module dm-raid45 found for kernel 2.6.35, continuing anyway


    编译完内核后要做一个小小的改动 /boot/initrd.2.6.35.img

    #cp /boot/initrd.2.6.35.img /tmp/
    #mkdir /tmp/initrd
    #cd /tmp/initrd
    #zcat ../initrd-2.6.35.img |cpio -i
    #vi init

    删除以下两行 (重复了)
    echo "Loading dm-region-hash.ko module"
    insmod /lib/dm-region-hash.ko
    重新打包
    #find .|cpio -c -o > ../initrdnew
    #cd ..
    #gzip -9 < initrdnew > initrd-2.6.35.img

    替换原有的initrd-2.6.35.img
    mon01上创建文件系统 mkcephfs会在配置文件中所定义的服务器进行配置
      
    #mkcephfs -c /usr/local/etc/ceph/ceph.conf --allhosts -v


    启动所有的服务器
      
    #/etc/init.d/ceph -a start



    4. 配置客户端 客户端内核同样需要内核支持ceph文件系统
      
    #modprobe -l|grep ceph
    /lib/modules/2.6.34.2/kernel/fs/ceph/ceph.ko
    #modprobe  ceph
    #mkdir /mnt/ceph
    #mount -t ceph 172.19.100.200:/ /mnt/ceph   #这里的ip地址是你mon01的地址

    5.  mon几个简单的监控命令
    #ceph mon stat -c /usr/local/etc/ceph/ceph.conf   查看mon server 状态
    #ceph mds stat -c /usr/local/etc/ceph/ceph.conf    查看mds server 状态
    #ceph ods stat -c /usr/local/etc/ceph/ceph.conf    查看ods server 状态
    ceph osd out n -c /usr/local/etc/ceph/ceph.conf    osd server n 移除集群
    ceph osd out n -c /usr/local/etc/ceph/ceph.conf    osd server n 加入集群




    #cp /tmp/initrd-2.6.35.img /boot/
    cp: overwrite `/boot/initrd-2.6.35.img'? y

    修改/boot/grub/menu.lst default=1 改成default=0 使用新内核启动
    重新启动系统


    3 ceph 安装
    先升级以下包
    #yum install rpm-build fuse-devel libtool libtool-ltdl-devel boost-devel libedit-devel git openssl-devel gcc-c++ btrfs-progs

    安装2RPM包 下载地址
    libedit-3.0-2.20090905cvs.el5.centos.x86_64.rpm
    http://dev.centos.org/centos/5/testing/x86_64/RPMS/libedit-3.0-2.20090905cvs.el5.centos.x86_64.rpm
      
    libedit-devel-3.0-2.20090905cvs.el5.centos.x86_64.rpm
    http://dev.centos.org/centos/5/testing/x86_64/RPMS/libedit-devel-3.0-2.20090905cvs.el5.centos.x86_64.rpm
    注释:如果用32bit操作系统的使用
    http://dev.centos.org/centos/5/testing/i386/RPMS/libedit-3.0-2.20090905cvs.el5.centos.i386.rpm
    http://dev.centos.org/centos/5/testing/i386/RPMS/libedit-devel-3.0-2.20090905cvs.el5.centos.i386.rpm
    #rpm -ivh libedit-3.0-2.20090905cvs.el5.centos.x86_64.rpm
    #rpm -ivh libedit-devel-3.0-2.20090905cvs.el5.centos.x86_64.rpm

    检查ceph是否在内核模块中
    #modprobe -l ceph
    /lib/modules/2.6.34.2/kernel/fs/ceph/ceph.ko

    下载最新的ceph并安装
    #wget http://ceph.newdream.net/download/ceph-0.21.tar.gz
    #tar xvfz ceph-0.21.tar.gz
    #cd ceph-0.21
    #./configure
    #make && make install


    ceph的配置文件默认在/usr/local/etc/ceph/下 有两个例子文件,自己编写一个ceph.conf
    内容如下
    ; global
    [global]
            ; enable secure authentication
            ; auth supported = cephx

    ; monitors
    [mon]
            mon data = /data/mon$id

                    debug ms = 1

    [mon0]
            host = mon01
            mon addr = 172.19.100.201:6789

    ; mds
    [mds]
                    keyring = /data/keyring.$name

    [mds.alpha]
            host = ceph01
    [mds.beta]
            host = ceph02

    ; osd

    [osd]
            sudo = true
            osd data = /data/osd$id
    [osd0]
            host = osd-01
            osd data = /data/osd
    osd journal = /data/osd$id/journal
            osd journal size = 100
    [osd1]
            host = osd-02
            osd data = /data/osd
            osd journal = /data/osd$id/journal
            osd journal size = 100

    [osd2]
            host = osd-03
            osd data = /data/osd
            osd journal = /data/osd$id/journal
            osd journal size = 100


    修改搜有主机的/etc/hosts
    增加相应的 地址映射
    #/etc/hosts
    172.19.100.200  mon01
    172.19.100.202  ceph02
    172.19.100.201  ceph01
    172.19.100.211  osd-01
    172.19.100.212  osd-02
    172.19.100.213  osd-03



    在添加所有的机器对mon01的信任,不然后面敲密码能把手敲木。
    #ssh-keygen -d
    #scp /root/.ssh/id_dsa.pub ceph01:/root/.ssh/authorized_keys
    #scp /root/.ssh/id_dsa.pub ceph02:/root/.ssh/authorized_keys
    #scp /root/.ssh/id_dsa.pub osd-01:/root/.ssh/authorized_keys
    #scp /root/.ssh/id_dsa.pub osd-02:/root/.ssh/authorized_keys
    #scp /root/.ssh/id_dsa.pub osd-03:/root/.ssh/authorized_keys



    添加ceph 启动服务
    #cp ceph-0.21/src/init-ceph /etc/init.d/ceph
    #chmod 755 /etc/init.d/ceph
    #chkconfig --add ceph





    附件:http://down.运维网.com/data/2356512


  • 运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
    2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
    3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
    4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
    5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
    6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
    7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
    8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

    所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-670579-1-1.html 上篇帖子: Ceph集群安装 下篇帖子: CEPH快速部署(Centos7+Jewel)
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    扫码加入运维网微信交流群X

    扫码加入运维网微信交流群

    扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

    扫描微信二维码查看详情

    客服E-mail:kefu@iyunv.com 客服QQ:1061981298


    QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


    提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


    本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



    合作伙伴: 青云cloud

    快速回复 返回顶部 返回列表