[0035] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036] 如图1‑9所示,本发明提供一种技术方案:一种基于VLC链路的混合数据中心网络结构VHCN,包括以下步骤:
[0037] S1、在数据中心网络HCN拓扑结构中添加无线VLC链路,原有的HCN结构不发生改变,仅在服务器层面加入无线VLC链路;
[0038] S1.1、构建规则的无线VLC链路:
[0039] 为每个服务器安装4个用于构建无线VLC链路的LED收发器,且所有的服务器形成n行n列的网格拓扑结构,网格内服务器的4个收发器安装在四个侧面以构建与其相邻机架的常规链路,而网格边缘的机架可以构建不超过3个规则链路;
[0040] S1.2、构建随机的无线VLC链路:
[0041] 备用的LED收发器安装在服务器顶部用于构建不规则的无线VLC链路,当每两个服务器之间的汉明距离大于2且没有直接连接时,构建随机的无线VLC链路;
[0042] S2、通信时,以最短路径长度为标准选择有线路由或使用无线VLC链路的无线路由或有线路由与无线路由结合的混合路由进行通信。
[0043] 进一步的,步骤S1.1中,构建规则的无线VLC链路的具体过程为:
[0044] 对服务器进行放置,HCN拓扑中没有直接相连的服务器可以相邻放置,若发生冲突,重复此步骤,直至找到服务器的合适摆放位置,具体的为设HCN中两个服务器A、B分别为A=ahah‑1…a0(ai∈[1,n],[i∈[0,h]),B=bhbh‑1…b0(bi∈[1,n],i∈[0,h])当ahah‑1…a1=bhbh‑1…b1且a0≠b0时或者ah=bi(i∈[0,h‑1])且bh=ai(i∈[0,h‑1])时发生冲突,即在HCN拓扑结中没有直接相连的两个服务器相邻放置;若发生冲突,重复此步骤,直至找到服务器的合适摆放位置,在服务器侧面安装LED收发器,相邻服务器之间构成规则链路,在无线VLC链路中,通过调制收发器的状态实现照明,当收发器接收到光时用1表示,没有接收到光用0表示,并以此进行数据传输。LED收发器具有很高的灵敏度,一个收发器接同时接收到多个收发器发送的信号时,不能进行区分。经过测试,当收发器安装在服务器侧面时,向一个收发器发送信号时,其他收发器受到的干扰可以忽略。
[0045] 进一步的,步骤S1.2中,构建随机的无线VLC链路的具体过程为:计算两个服务器之间的欧式距离 其中(x1,y1),(x2,y2)为两个服务器在二维网格拓扑中的坐标;由于LED收发器在10米内进行高速率数据传输,所以相邻服务器之间的距离小于10米通过随机链路连接的两个服务器应满足不等式 以HCN的
基本构建单元HCN(n,0)为一个pod,构建的随机链路在不同的pod之间,构建pod图G=(V,E),pod连通度定义为G中边数与对应完全图中边数的比值,重复此步骤,找到使pod间有最大的连通度的随机连接。
[0046] 进一步的,m和n表示两个服务器,i表示此服务器在网格拓扑的第i行,j表示此服务器在网格拓扑的第j列。
[0047] 进一步的,步骤S1中,在数据中心网络HCN拓扑结构中添加无线VLC链路,无线VLC链路中的规则链路的LED收发器安装在服务器侧面以避免干扰;随机链路的LED收发器安装在服务器顶端,为了避免干扰需要分层次进行安装,利用定点着色的方法让不同组的收发器位于不同平面从而解决了干扰问题。
[0048] 进一步的,步骤S2中,进行通信时,以最短路径长度为标准选择有线路由或使用无线VLC链路的无线路由或有线路由与无线路由结合的混合路由进行通信。
[0049] 进一步的,步骤S2中,在一对一进行通信时,如算法1.Routing所示,对于源节点src和目标节点dst,首先判断两个节点是否由有线链路或无线链路直接连接,在同一基础单元中经一个交换机连接也可视为直接连接,对于两个没有直接连接的节点,如果其所在基础单元是由无线链路进行连接,可以用过基础单元间的无线链路进行通信,在一个基础单元内的通信路径可由构建过程中直接给出,如果两个基础单元内没有无线链路连通,可通过GetIntraLink给出源和目地节点所在的次一级机构间的连接(dst1,src1),在对新的源和目的节点(src,dst1),(src1,dst)进行以上过程,直至出现源节点src到目的节点dst之间的全部路径。
[0050] 算法1.Routing伪代码如下:
[0051] 算法1 Routing(src,dst)
[0052] 输入:VHCN(n,h)中的任意两台服务器节点src和dst,服务编码分别为src=shsh‑1...s1s0,dst=dhdh‑1...d1d0
[0053] 输出:服务器节点src到dst的一条路径。
[0054] 1.f←Commprefix(src,dst);//计算两个节点的共同前缀
[0055] 2.定义m为f的长度;
[0056] 3.if m==h then;
[0057] 4.Return(src,dst);//在同一个基础单元中
[0058] 5.无线链路连接A,B两个服务器,定义d A,B=1,否则d A,B=0;
[0059] 6.if d src,dst=1then
[0060] 7.Return(src,dst);//无线链路直接连接
[0061] 8.无线链路连接A,B两个服务器构成基础单元间的联通,定义pA,B=1,否则[0062] 9.pA,B=0;
[0063] 10.If pA,B=1then//A和src在同一基础单元,B和dst在同一单元
[0064] 11.Return(src,A,B,dst)
[0065] 12.(dst1,src1)←GetIntraLink(f,sh‑m,dh‑m);//src和dst所在的次一级HCN间的连接
[0066] 13.Head←Routing(src,dst1)
[0067] 14.Tail←Routing(src1,dst)
[0068] 15.Return head+(dst1,src1)+tail GetIntraLink(f,s,d)
[0069] 1.定义m为f的长度;
[0070] 2.dst1←f+s+dh‑m;//dh‑m代表h‑m个连续的d
[0071] 3.src1←f+s+sh‑m;//sh‑m代表h‑m个连续的s
[0072] 4.Return(dst1,src1)
[0073] 需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
[0074] 尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。