zoukankan      html  css  js  c++  java
  • ceph安装日志

    # yum install ceph
    报错如下
    已加载插件:fastestmirror, refresh-packagekit, security
    设置安装进程
    Loading mirror speeds from cached hostfile
     * base: mirrors.btte.net
     * extras: mirrors.btte.net
     * updates: mirrors.btte.net
    错误:xz compression not available
    网上查找原因:

    由于CentOS6的系统安装了epel-release-latest-7.noarch.rpm 导致在使用yum命令时出现Error: xz compression not available问题。

    解决方法:

    1.到http://ftp.riken.jp/Linux/fedora/epel/下载epel-release-latest-6.noarch.rpm

    2.卸载epel-release-latest-7.noarch.rpm:yum remove epel-release

    3.清空epel目录:rm -rf /var/cache/yum/x86_64/6/epel/

    4.安装epel6:rpm -ivh epel-release-latest-6.noarch.rpm

    最后怀疑yum问题。卸载了yum重新安装。
    卸载与安装yum过程如下

    查看已安装的yum包

    #rpm –qa|grep yum

    卸载软件包

    #rpm –e –nodeps yum

    下载安装依赖包python python-iniparse
    1. 下载python2.7.5,保存到 /data/qtongmon/software
    http://www.python.org/ftp/python/
    2. 解压文件
    tar xvf Python-2.7.5.tar.bz2

    3. 创建安装目录
    mkdir /usr/local/python27

    4. 安装python
    ./configure --prefix=/usr/local/python27

    # ./configure --prefix=/usr/local/python27
    checking build system type... x86_64-unknown-linux-gnu
    checking host system type... x86_64-unknown-linux-gnu
    checking for --enable-universalsdk... no
    checking for --with-universal-archs... 32-bit
    checking MACHDEP... linux2
    checking EXTRAPLATDIR... 
    checking for --without-gcc... no
    checking for gcc... no
    checking for cc... no
    checking for cl.exe... no
    configure: error: in `/home/king/mysoft/Python-2.7.9':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details
    看来是因为没有GCC(可能卸载之前的yum误卸载了)
    下载了一个gcc 的rpm包,安装又失败了下载地址
    # rpm -ivh gcc-4.4.7-11.el6.x86_64.rpm 
    error: Failed dependencies:
        cloog-ppl >= 0.15 is needed by gcc-4.4.7-11.el6.x86_64
        cpp = 4.4.7-11.el6 is needed by gcc-4.4.7-11.el6.x86_64
    没有 cloog-ppl >= 0.15
    于是下载一个cloog-ppl-0.15.10.tar.gz
    解压安装
    # tar -xzf cloog-ppl-0.15.10.tar.gz
    # mkdir /usr/local/cloog-ppl
    # cd cloog-ppl-0.15.10
    # ./configure --prefix=/usr/local/cloog-ppl/
    输出如下
    checking for a BSD-compatible install... /usr/bin/install -c
    checking whether build environment is sane... yes
    checking for gawk... gawk
    checking whether make sets $(MAKE)... yes
    checking for gcc... no
    checking for cc... no
    checking for cl.exe... no
    configure: error: in `/home/king/mysoft/cloog-ppl-0.15.10':
    configure: error: no acceptable C compiler found in $PATH
    See `config.log' for more details.
    没有gcc.看来gcc和cloog-ppl互相依赖。死循环了。
    换用rpm包安装试试
    下载地址
    # rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm 
    warning: cloog-ppl-0.15.7-1.2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature,
     key ID fd431d51: NOKEY
    error: Failed dependencies:
        libppl.so.7()(64bit) is needed by cloog-ppl-0.15.7-1.2.el6.x86_64
        libppl_c.so.2()(64bit) is needed by cloog-ppl-0.15.7-1.2.el6.x86_64
     
    这个先跳过不装。先装一个cpp4.4.7看看能不能解决问题
    下载地址
    # rpm -ivh cpp-4.4.7-3.el6.x86_64.rpm 
    warning: cpp-4.4.7-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    error: Failed dependencies:
        libmpfr.so.1()(64bit) is needed by cpp-4.4.7-3.el6.x86_64
     
    还是不行。那就继续安装刚才的cloog-ppl-0.15.7-1.2.el6.x86_64.rpm,解决libppl.so.7和libppl_c.so.2问题
    网上查找相关文章,得知可能是缺了这两个包……(参考文章《RedHat安装GCC问题---解决依赖问题》)
    mpfr-2.4.1-6.el6.x86_64.rpm
    ppl-0.10.2-11.el6.x86_64.rpm
    # rpm -ivh mpfr-2.4.1-6.el6.x86_64.rpm 
    Preparing...                ########################################### [100%]
       1:mpfr                   ########################################### [100%]
    # rpm -ivh ppl-0.10.2-11.el6.x86_64.rpm 
    warning: ppl-0.10.2-11.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    Preparing...                ########################################### [100%]
       1:ppl                    ########################################### [100%]
    继续安装
    # rpm -ivh cloog-ppl-0.15.7-1.2.el6.x86_64.rpm 
    warning: cloog-ppl-0.15.7-1.2.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    Preparing...                ########################################### [100%]
       1:cloog-ppl              ########################################### [100%]
     
    # rpm -ivh cpp-4.4.7-3.el6.x86_64.rpm 
    warning: cpp-4.4.7-3.el6.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID fd431d51: NOKEY
    Preparing...                ########################################### [100%]
       1:cpp                    ########################################### [100%]
     
    # rpm -ivh gcc-4.4.7-11.el6.x86_64.rpm 
    error: Failed dependencies:
        cpp = 4.4.7-11.el6 is needed by gcc-4.4.7-11.el6.x86_64
    看来cpp版本还是不够
    于是下载一个cpp-4.4.7-11.el6.x86_64.rpm
    下载地址
    ftp://mirror.switch.ch/pool/4/mirror/scientificlinux/6.6/x86_64/os/Packages/cpp-4.4.7-11.el6.x86_64.rpm
    # rpm -ivh cpp-4.4.7-11.el6.x86_64.rpm 
    warning: cpp-4.4.7-11.el6.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 192a7d7d: NOKEY
    Preparing...                ########################################### [100%]
        file /usr/bin/cpp from install of cpp-4.4.7-11.el6.x86_64 conflicts with file from package cpp-4.4.7-3.el6.x86_64
        file /usr/libexec/gcc/x86_64-redhat-linux/4.4.4/cc1 from install of cpp-4.4.7-11.el6.x86_64 conflicts with file from package cpp-4.4.7-3.el6.x86_64
    这两行输出开始被我忽略了,以至于后面安装gcc还提示同样的错误(cpp = 4.4.7-11.el6 is needed by gcc-4.4.7-11.el6.x86_64)
    这两行警告是不可忽略的,它是在提示我们有文件冲突,安装cpp-4.4.7-11.el6.x86_64时,/usr/bin/cpp已存在,是在安装cpp-4.4.7-3.el6.x86_64的时候产生的。再次安装cpp-4.4.7-11.el6.x86_64并不会删除之前的这个cpp文件。要想让cpp-4.4.7-11.el6.x86_64安装成功,需要卸载之前的cpp-4.4.7-3.el6.x86_64
    找到之前安装的cpp-4.4.7-3.el6.x86_64并卸载
    # rpm -qa | grep cpp
    mcpp-2.7.2-4.1.el6.x86_64
    cpp-4.4.7-3.el6.x86_64
    libmcpp-2.7.2-4.1.el6.x86_64
    # rpm -e cpp-4.4.7-3.el6.x86_64
    注意:卸载的时候不要再加.rpm后缀否则会提示错误(如下:)
    # rpm -e cpp-4.4.7-3.el6.x86_64.rpm 
    error: package cpp-4.4.7-3.el6.x86_64.rpm is not installed
    卸载完cpp-4.4.7-3.el6.x86_64再安装cpp-4.4.7-11.el6.x86_64
    然后检查一下是否安装成功
    # rpm -qa | grep cpp
    cpp-4.4.7-11.el6.x86_64
    mcpp-2.7.2-4.1.el6.x86_64
    libmcpp-2.7.2-4.1.el6.x86_64
    abrt-addon-ccpp-2.0.8-26.el6.centos.x86_64
    然后安装gcc
    # rpm -ivh gcc-4.4.7-11.el6.x86_64.rpm
    Preparing...                ########################################### [100%]
       1:gcc                    ########################################### [100%]
    然后安装python
    #./configure --prefix=/usr/local/python27
    ....python安装完毕后安装yum
    # tar -xzf yum-3.2.28.tar.gz
    # cd yum-3.2.28
    # ./yummain.py install yum
    CRITICAL:yum.cli:Config Error: Error accessing file for config file:///etc/yum.conf
    安装错误,提示没有yum.conf这个配置文件。建一个空文件
    # touch /etc/yum.conf
    # ./yummain.py install yum
    base                           | 3.7 kB     00:00     
    base/primary_db          | 4.7 MB     00:01     
    ceph-noarch  |  951 B     00:00ceph-noarch/primary                       | 8.1 kB     00:00     
    ceph-oarch      29/29
    dl.fedoraproject.org_pub_epel_7_x86_64_ | 4.3 kB     00:00     
    dl.fedoraproject.org_pub_epel_7_x86_64_/primary_db     | 4.2 MB     00:02     
    Error: xz compression not available
     
    可能是pyliblzma问题下载一个装试试
    # rpm -ivh pyliblzma-0.5.3-3.el6.x86_64.rpm 
    Preparing...                ########################################### [100%]
       1:pyliblzma              ########################################### [100%]
    继续安装yum
    # cd yum-3.2.28
    # ./yummain.py install yum
    .......
    Installed:
      yum.noarch 0:3.2.29-75.el6.centos                                                                                     Dependency Updated:
      python-urlgrabber.noarch 0:3.9.1-11.el6                                                                                 Complete!
    yum安装成功
    成功了。原来是缺这个东西。
    ****************************************************************
    注:后来想在公司的集群上安装ceph,正好遇到没有yum的问题,用同样方法安装yum,却行不通了。输出与报错如下
    # ./yummain.py install yum
    Traceback (most recent call last):
      File "./yummain.py", line 27, in <module>
        from yum import Errors
      File "/root/somesoft/yum-3.2.28/yum/__init__.py", line 23, in <module>
        import rpm
    ImportError: No module named rpm
    看来是python缺少了rpm模块
    但是查询本地的python相关模块时,发现已安装了python-rpm
    # rpm -qa | grep python
    python-elementtree-1.2.6-4
    rpm-python-4.3.3-13_nonptl
    dbus-python-0.22-12.EL.5
    python-2.3.4-14.1
    libxml2-python-2.6.16-6
    python-devel-2.3.4-14.1
    python-sqlite-1.1.6-1
    python-ldap-2.0.1-2
    python-urlgrabber-2.9.6-2
    那,重新安装一下吧
    在这个链接
    我本机系统是centos4.3,选了个4.4的rpm版本下载,如下。结果又一堆错
    # rpm -ivh python-rpm-4.4.2.3-20mnb2.x86_64.rpm 
    warning: python-rpm-4.4.2.3-20mnb2.x86_64.rpm: V3 DSA signature: NOKEY, key ID 70771ff3
    error: Failed dependencies:
            python >= 2.5 is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            rpm = 1:4.4.2.3-20mnb2 is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            python-base >= 2.5 is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            libbeecrypt.so.7()(64bit) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            libc.so.6(GLIBC_2.4)(64bit) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            librpm-4.4.so()(64bit) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            librpmbuild-4.4.so()(64bit) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            librpmdb-4.4.so()(64bit) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            librpmio-4.4.so()(64bit) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            rtld(GNU_HASH) is needed by python-rpm-4.4.2.3-20mnb2.x86_64
            rpmlib(PayloadIsLzma) <= 4.4.6-1 is needed by python-rpm-4.4.2.3-20mnb2.x86_64
    一个一个排除吧。python版本2.7,这个没错。rpm版本比较低(跟系统版本一致的),达不到4.4版本:
    # rpm --version
    RPM version 4.3.3
    可能是python-rpm版本比系统版本高,先换个python-rpm4.3的试试
    ****************************************************************

    继续安装ceph
    配置yum源
    # vim /etc/yum.repos.d/ceph.repo
    [ceph-noarch]
    name=Ceph noarch packages
    enabled=1
    gpgcheck=1
    type=rpm-md
    gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
     
    使用yum安装ceph-deploy工具
    # yum install ceph-deploy
    ...
    ceph-deploy工具安装成功(使用上述方法,在MJ00,MJ01,MJ03,MJ04上也都安装了ceph-deploy工具)
     
    接下来进行静态IP设置。打开/etc/sysconfig/network-scripts/ifcfg-eth0文件做以下设置。
    #vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0    //这个跟配置文件名ifcfg-eth0中的eth0保持一致
    BOOTPROTO=static    //这里启动协议设为静态,保证IP固定不变
    BROADCAST=192.168.0.1    //网关。前三个数和你要设置的IP的前三个数保持一致。最后一个为1
    HWADDR=00:0c:29:15:38:68    //网卡地址。获取方式下面再做解释
    ONBOOT=yes    
    TYPE=Ethernet
    IPADDR=192.168.0.102    //你要设置的IP
    NETMASK=255.255.255.0
    NETWORK=192.168.0.0
     
    上面的网卡地址,在/etc/udev/rules.d/70-persistent-net.rules文件中获取
    我本来有两张网卡,eth1和eth0,但是在执行ifconfig命令的时候,只显示eth1不显示eth0,于是我就把之前的eth0那一行注释掉了,把之前的eth1那一行的"eth1"修改为"eth0"。
    修改完ifcfg-eth0,然后保存退出。重启网络服务
    #service network restart
     
    在MJ00,MJ02,MJ03,MJ04四台机器之间设置互信关系,方便彼此间实现无密码登陆和传输数据。

    1、在每台服务器上都执行ssh-keygen -t rsa生成密钥对:
    #ssh-keygen -t rsa

    2、在每台服务器上生成密钥对后,将公钥复制到需要无密码登陆的服务器上:
    举例如192.168.0.100,192.168.0.101,192.168.0.102,192.168.0.103这四台服务器需要做相互免密码登陆,在每台服务器生成密钥对后,在每台服务器上执行ssh-copy-id命令,将公钥复制到其它三台服务器上(此处以192.168.0.100为例,用户为root,其它三台步骤相同,注意修改下IP哦!)

    #ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.101
    #ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.102
    #ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.0.103
    以上命令,可以自动将公钥添加到名为authorized_keys的文件中,在每台服务器都执行完以上步骤后就可以实现多台服务器相互无密码登陆
    3、设置alias
    设置alias别名可以更方便的登陆集群内有信任关系的机器。设置方法:
    在每台机器~/.bash_profile的最后加上以下几行
    alias MJ00="ssh root@192.168.0.100"
    alias MJ02="ssh root@192.168.0.101"
    alias MJ03="ssh root@192.168.0.102"
    alias MJ04="ssh root@192.168.0.103"
     
    然后执行#source ~/.bash_profile
    然后执行#MJ00 (不用再执行ssh root@192.168.0.100)就能登上MJ00这台机器了
     
    接下来应该使用ceph-deploy来安装ceph了,但是虚拟机连不上网。找到以下上网的方法,希望既能各个节点之间能连通,同时又能以静态IP来上网。后来找到一个网上的方法,捣鼓一番之后,既不能让虚拟机上网,同时连之前的节点之间的通信也坏掉了。经过几天的回忆&尝试,还是不能恢复节点间的通信。无奈之下,将虚拟机的虚拟网络设置恢复默认设置,同时又新建了几台虚拟机。
    此时,虚拟机的虚拟网络设置界面如下
      
    此时可以看见子网IP网段发生改变,变为192.168.136.0
    如果希望虚拟机和物理机之间能够通信,虚拟机的IP就需要和这个子网IP在一个网段。
    点击"DHCP"设置,可以查看到dhcp默认分配的IP范围,和IP默认租用时间。
    希望虚拟机能够通过dhcp上网,就需要把虚拟机IP设置在这个范围内。IP的默认租用时间设置长一点,尽量避免频繁的更换IP
    虚拟机MJ01上配置文件改动如下
    $ vim /etc/sysconfig/network-scripts/ifcfg-eth0
     1 DEVICE=eth0
     2 BOOTPROTO=static
     3 BROADCAST=192.168.136.255
     4 HWADDR=00:0c:29:e3:f2:5b
     5 ONBOOT=yes
     6 TYPE=Ethernet
     7 IPADDR=192.168.136.201
     8 NETMASK=255.255.255.0
     9 NETWORK=192.168.136.2
    10 IPV6INIT=no
    11 USERCTL=no
    12 DNS1=101.226.4.6
    13 DNS2=114.114.114.114
    其中
    网关( 9 NETWORK=192.168.136.2)是从“NET设置"里面查看
    DNS从物理机的命令行界面执行"ipconfig /all"命令查看
    修改完毕之后,重启网络服务
    然而后来又碰到以下问题
    [root@MJ01 ~]# service network restart
    关闭环回接口:                                             [确定]
    弹出环回接口:                                             [确定]
    弹出界面 eth0: 错误:激活连接失败:Device not managed by NetworkManager or unavailable
                                                               [失败]
    然后执行"ifconfig"命令,发现没有eth0网卡
    [root@MJ01 ~]# ifconfig
    lo       Link encap:Local Loopback  
              inet addr:127.0.0.1  Mask:255.0.0.0
              inet6 addr: ::1/128 Scope:Host
              UP LOOPBACK RUNNING  MTU:65536  Metric:1
              RX packets:9420 errors:0 dropped:0 overruns:0 frame:0
              TX packets:9420 errors:0 dropped:0 overruns:0 carrier:0
              collisions:0 txqueuelen:0 
              RX bytes:711016 (694.3 KiB)  TX bytes:711016 (694.3 KiB)
    这个问题的解决方案
    解决方案:
    1、#Remove Network Manager from startup Services.
    chkconfig NetworkManager off
    2、#Add Default Net Manager
    chkconfig network on
    3、#Stop NetworkManager first
    service NetworkManager stop
    4、#and then start Default Manager
    service network start
    5、#restart network
    service network restart
     
    然后MJ01虚拟机能够和物理机通信了。然而还是上不了网。然后不想在虚拟机上网的事情上浪费时间了。
    先把这几台机器之间的通信解决,到时候使用本地安装的方式来搭建ceph集群
    然后解决MJ02虚拟机的通信问题。ifcfg-eth0文件修改如下
    # vim /etc/sysconfig/network-scripts/ifcfg-eth0
    DEVICE=eth0
    BOOTPROTO=static
    BROADCAST=192.168.136.255
    HWADDR=00:0c:29:15:38:68
    ONBOOT=yes
    TYPE=Ethernet
    IPADDR=192.168.136.202
    NETMASK=255.255.255.0
    NETWORK=192.168.136.2
    DNS1=101.226.4.6
    DNS2=114.114.114.114
     
    然后重启network服务,执行ifconfig发现没有eth0网卡,却是eth1网卡。
     
    /etc/sysconfig/network-scripts/这个路径下没有ifcfg-eth1文件,这个eth1是从哪里来的呢?
    然而重启虚拟机,这个问题就解决了。于是它是怎么发生的,已经不重要了。于是就继续之前的安装了。
    然后发现从物理机xshell登不上虚拟机,经过一番查看,发现是虚拟机设置里面没有设置为"NAT",修改之后,
    物理机就能ping通虚拟机了,然后xshell也能登陆了。
    然后是MJ03,遇到的问题跟上面类似,所以很快搞定。但是到MJ04机器的时候,又遇到不能登陆的状况。
    后来发现是BROADCAST这个参数被设置成了192.168.136.2。修改成192.168.136.255然后重启服务就OK了。
    在前3台设置中,没注意这个参数的重要性,这个参数表示广播地址。
    同样设置MJ00,依然不能登陆。最后发现是防火墙没有关闭。关闭防火墙,然后可以登陆了。 
    但是登陆之后,再次开启防火墙,也同样能登陆了。虽然暂时不能通晓其中玄机,但事实证明关闭一下防火墙也是解决问题的办法之一。
    至此,之前的五台虚拟机都能够重新登陆,经过测试,彼此之间都能ping通,恢复通信了。
  • 相关阅读:
    根据企业信息化应用需求来分析工作流平台的选型
    如何把文件上传到另外一台服务器【转自 金色約定之家】
    如何启用sqlplus的AutoTrace功能 【转】
    使用AJAX技术构建更优秀的Web应用程序
    提高ORACLE数据库的查询统计速度
    一个弹出式menu的制作
    鼠标滑过div显示与隐藏
    使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender实现自动完成功能(下)
    使用ASP.NET Atlas AutoComplete Behavior或AutoComplete Extender实现自动完成功能(上) 【转自http://dflying.cnblogs.com】
    用javascript来操作字符串
  • 原文地址:https://www.cnblogs.com/flyfish919/p/7073527.html
Copyright © 2011-2022 走看看