暂未分类 暂未分类 配置Ceph的IPV6集群 zphj1987 2016-10-17 2024-01-05 前言 对于IPV6实在是非常的陌生,所以本篇开始会讲一下最基本的网络配置,首先让网络能通起来,最开始就是因为不熟悉IPV6,而直接使用了link local地址,造成了mon部署的时候进程无法绑定到IP,从而端口没有启动,这个是在ceph社区群友 ceph-长沙-柠檬
同学的帮助下才发现问题的
IPV6是会有个link local地址的,在一个接口可以配置很多IPv6地址,所以学习路由就有可能出现很多下一跳。所以出现Link Local地址唯一标识一个节点。在本地链路看到下一跳都是对端的Link Local地址。这个地址一般是以fe80开头的,子网掩码为64,这个地方需要给机器配置一个唯一的全局单播地址
However, with IPv6, all (IPv6) interfaces will have a link local address. This address is intended to allow communications over the attached links and so is defined to be usable only on that link.
网络配置 linux下用默认的网卡配置文件
1 2 3 4 5 6 7 8 9 [root@node1 ceph]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.46 netmask 255.255.0.0 broadcast 192.168.255.255 inet6 fe80::20c:29ff:fec5:5a4b prefixlen 64 scopeid 0x20<link> ether 00:0c:29:c5:5a:4b txqueuelen 1000 (Ethernet) RX packets 18422 bytes 1254119 (1.1 MiB) RX errors 0 dropped 6 overruns 0 frame 0 TX packets 1938 bytes 890164 (869.3 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
取消NetworkManager管理 1 2 3 systemctl stop NetworkManager systemctl disable NetworkManager systemctl restart network
以免NetworkManager的干扰
这个地方我没有做自定义的IPV6的设置,让其默认的生成的地方,可以看到上面的node1的link local地址地址为 fe80::20c:29ff:fec5:5a4b 我的另外一台的地址为 fe80::20c:29ff:feda:6849
node1 fe80::20c:29ff:fec5:5a4b prefixlen 64 node2 fe80::20c:29ff:feda:6849 prefixlen 64
这个地方都是没有单播地址的,需要配置一个
配置的时候关闭掉ipv4的IP,防止影响,确认配置的就是ipv6环境,去掉IPv4的配置即可,我的网卡配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 TYPE="Ethernet" BOOTPROTO="static" DEFROUTE="yes" PEERDNS="yes" PEERROUTES="yes" NM_CONTROLLED=no IPV4_FAILURE_FATAL="no" IPV6INIT="yes" IPV6ADDR=2008:20c:20c:20c:20c:29ff:fec5:5a4b/64 IPV6_AUTOCONF=no IPV6_DEFROUTE="yes" IPV6_PEERDNS="yes" IPV6_PEERROUTES="yes" IPV6_FAILURE_FATAL="no" NAME="eno16777736" UUID="0146f40c-6f4d-4c63-a9cd-7f89264613f3" DEVICE="eno16777736" ONBOOT="yes"
检查配置情况
1 2 3 4 5 6 7 8 9 [root@node1 ceph]# ifconfig eno16777736: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet6 fe80::20c:29ff:fec5:5a4b prefixlen 64 scopeid 0x20<link> inet6 2008:20c:20c:20c:20c:29ff:fec5:5a4b prefixlen 64 scopeid 0x0<global> ether 00:0c:29:c5:5a:4b txqueuelen 1000 (Ethernet) RX packets 9133 bytes 597664 (583.6 KiB) RX errors 0 dropped 1 overruns 0 frame 0 TX packets 466 bytes 137983 (134.7 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
可以看到有两个inet6这样就是对的了
windows远程ssh连接的方式:ssh 2008:20c:20c:20c:20c:29ff:fec5:5a4b
配置hosts 在配置文件/etc/hosts中添加如下内容
1 2 2008:20c:20c:20c:20c:29ff:fec5:5a4b node1 2008:20c:20c:20c:20c:29ff:feda:6849 node2
检测是否连通
1 [root@node1 ~]# ping6 -I eno16777736 2008:20c:20c:20c:20c:29ff:feda:6849
ping主机名称
1 [root@node1 ~]# ping6 -I eno16777736 node2
注意ping6需要加上网卡名称
同样的操作在node2上也配置好,网络到这里就配置好了
集群配置 创建初始配置文件 1 2 3 4 5 6 7 8 9 10 [root@node1 ceph]# ceph-deploy new node1 [root@node1 ceph]# cat ceph.conf [global] fsid = f0bf4130-f4f0-4214-8b98-67103ad55d65 ms_bind_ipv6 = true mon_initial_members = node1 mon_host = [2008:20c:20c:20c:20c:29ff:fec5:5a4b] auth_cluster_required =cephx auth_service_required = cephx auth_client_required = cephx
创建mon 1 [root@node1 ceph]# ceph-deploy mon create node1
检查状态 1 2 3 4 5 6 7 8 9 10 [root@node1 ceph]# ceph -s cluster d2882f75-1209-4667-bef8-3051c84cb83c health HEALTH_ERR no osds monmap e1: 1 mons at {node1=[2008:20c:20c:20c:20c:29ff:fec5:5a4b]:6789/0} election epoch 3, quorum 0 node1 osdmap e8: 0 osds: 0 up, 0 in flags sortbitwise pgmap v2664: 0 pgs, 0 pools, 0 bytes data, 0 objects 0 kB used, 0 kB / 0 kB avail
检查端口 1 2 3 4 [root@node1 ceph]# netstat -tunlp|grep tcp6 tcp6 0 0 :::22 :::* LISTEN 1155/sshd tcp6 0 0 ::1:25 :::* LISTEN 1294/master tcp6 0 0 2008:20c:20c:20c:2:6789 :::* LISTEN 8997/ceph-mon
可以看到集群已经正确的监听在了ipv6上了,后续的操作跟普通的IPV4集群一样的
变更记录
Why
Who
When
创建
武汉-运维-磨渣
2016-10-17