利用ceph-deploy安装ceph集群时,默认是不区分public network和cluster network的。如果集群规模较小、数据量不大的话,走1Gb网卡勉强能应付。
理想情况是使用10Gb网卡,可以不区分public network和cluster network。否则应该单独设置public network和cluster network。其架构如图所示:
这样做带来的好处是:
1. 性能提升
此时osd间复制PGs、心跳检测、osd故障恢复和数据rebalancing等都通过cluster network,大大降低了对public network的依赖;public network可以专注于monitor、mds与osd间的通信、client请求等。
2. 安全提升
利用私有网络管理osd间的数据与通信,屏蔽了来自public network的很多外部恶意攻击。
在实际环境中我使用了以下两个网段:
- Private network eth1: 10.0.0.0/8
- Public network eth0: 192.168.5.0/24
[osd]
cluster network = 10.0.0.0/8
public network = 192.168.5.0/24
[osd.0]
public addr = 192.168.5.110:6801
cluster addr = 10.0.0.1
[osd.1]
public addr = 192.168.5.111:6802
cluster addr = 10.0.0.2
[osd.2]
public addr = 192.168.5.112:6803
cluster addr = 10.0.0.3
然后将ceph.conf拷贝到每个节点,并重新启动每个osd节点。内部osd拷贝等就会走cluster network了。
实际配置中,在[osd]设置了cluster network和public network后,不必在每个osd中设置ip,ceph会自动为你配置相应ip。如果需要指定端口的话,需要手动配置。
ps:在线改变已经挂载的ceph 块设备容量:
# rbd create --size 10000 test
# rbd map test
# mkfs.ext4 -q /dev/rbd1
# mount /dev/rbd1 /mnt
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/rbd1 9.5G 22M 9.0G 1% /mnt
# blockdev --getsize64 /dev/rbd1
10485760000
# rbd resize --size 20000 test
Resizing image: 100% complete...done.
# blockdev --getsize64 /dev/rbd1
20971520000
# resize2fs /dev/rbd1
resize2fs 1.42 (29-Nov-2011)
Filesystem at /dev/rbd1 is mounted on /mnt; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/rbd1 is now 5120000 blocks long.
# df -h /mnt
Filesystem Size Used Avail Use% Mounted on
/dev/rbd1 20G 27M 19G 1% /mnt
此方法只对格式化未EXT4文件系统的块设备有效。对于XFS,要再 resize之后执行
|
# xfs_growfs /mnt
|
文章翻译自:http://dachary.org/?p=2179&utm_source=tuicool