其他注意事项
您可以在每台主机上运行多个OSD进程,但你应该确保OSD硬盘的吞吐量总和不超过客户端读取或写入数据所需的网络带宽。你也应该考虑在每个主机上数据的存储率。如果一个特定的主机上的百分比较大,它可能会导致问题:为了防止数据丢失,会导致Ceph停止操作。
当您运行每台主机上运行多个OSD进程时,你还需要保证内核是最新的。当您运行每台主机上运行多个OSD进程时(如>20)会产生很多的线程,特别是进行recovery和relalancing操作。许多Linux内核默认线程限最大数量比较小(例如,32k的)。如果您遇到这方面的问题,可以考虑把kernel.pid_max设置的高一点。理论上的最大值为4,194,303。
IP | hostname | 描述 |
192.168.40.106 | dataprovider | 部署管理节点 |
192.168.40.107
|
mdsnode | MDS,MON节点 |
192.168.40.108
|
osdnode1 | OSD节点 |
192.168.40.148
|
osdnode2 |
OSD节点
|
sudo vim /etc/yum.repos.d/ceph.repo[ceph-noarch] name=Ceph noarch packages baseurl=http://ceph.com/rpm-{ceph-release}/{distro}/noarch enabled=1 gpgcheck=1 type=rpm-md gpgkey=https://ceph.com/git/?p=ceph.git;a=blob_plain;f=keys/release.asc
sudo yum install ceph-deploy
在/etc/hosts文件中改成如下内容#127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 127.0.0.1 dataprovider 192.168.40.107 mdsnode 192.168.40.108 osdnode1 192.168.40.148 osdnode2 ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
每个节点都执行下面的命令yum install -y ntp ntpdate ntp-doc yum install -y openssh-server
为了使用简单,在每个节点上都创建leadorceph用户,并且密码都设置为leadorceph
sudo useradd -d /home/leadorceph -m leadorceph sudo passwd leadorceph
echo "leadorceph ALL = (root) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/leadorceph sudo chmod 0440 /etc/sudoers.d/leadorceph
配置正确会出现如下截图
在deploy节点上切换到leadorceph用户,生成 无密码的SSH key,并拷贝到每个节点上
[leadorceph@dataprovider root]$ ssh-keygen Generating public/private rsa key pair. Enter file in which to save the key (/home/leadorceph/.ssh/id_rsa): Created directory '/home/leadorceph/.ssh'. Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/leadorceph/.ssh/id_rsa. Your public key has been saved in /home/leadorceph/.ssh/id_rsa.pub. The key fingerprint is: a8:fb:b8:3a:bb:62:dc:25:a6:58:7b:9d:97:00:30:ec leadorceph@dataprovider The key's randomart image is: +--[ RSA 2048]----+ | . | | + | | . o | | E . . | | .. S | | .o o. | |o.+.+. o . | |o+o..oo o | |..+*+o.. | +-----------------+
拷贝到每个节点ssh-copy-id leadorceph@mdsnode ssh-copy-id leadorceph@osdnode1 ssh-copy-id leadorceph@osdnode2
在deploy节点上创建配置目录,下面的所有deploy节点上的操作都在该目录进行
mkdir my-cluster cd my-cluster
如果部署失败了可以用下面的命令恢复ceph-deploy purgedata {ceph-node} [{ceph-node}] ceph-deploy forgetkeys
在admin node 上用ceph-deploy创建集群,new后面跟的是mds节点的hostnameceph-deploy new mdsnode
执行成功后该目录下会增加三个文件
修改ceph.conf,使osd_pool_default_size的值为2
ceph-deploy install deploynode mdsnode osdnode1 osdnode2
安装成功:
在deploy上依次执行下面的命令ceph-deploy mon create-initial ceph-deploy mon create mdsnode ceph-deploy gatherkeys mdsnode
执行成功后会出现下面的文件
为了达到快速演示的效果,OSD后台进程使用目录而非独立的磁盘,分别在两个osd节点上创建目录ssh osdnode1 sudo mkdir /var/local/osd0 exit ssh osdnode2 sudo mkdir /var/local/osd1 exit
ceph-deploy osd prepare osdnode1:/var/local/osd0 osdnode2:/var/local/osd1 ceph-deploy osd activate osdnode1:/var/local/osd0 osdnode2:/var/local/osd1
ceph-deploy admin dataprovider mdsnode osdnode1 osdnode2
sudo chmod +r /etc/ceph/ceph.client.admin.keyring
问题描述:[ceph_deploy][ERROR ] RuntimeError: remote connection got closed, ensure ``requiretty`` is disabled for mdsnode解决方法: 需要在mdsnode,osdnode1,osdnode2三个节点中使用leadorceph用户的身份执行sudo visudo命令,然后修改Defaults requiretty 为Defaults:ceph !requiretty
解决办法1 修改/usr/lib/python2.6/site-packages/ceph_deploy/hosts/centos/install.py 文件取消install的执行,修改方式如下:
2 执行的时候加上--repo参数
原文地址:http://blog.csdn.net/eric_sunah/article/details/40862215