- 博客(163)
- 资源 (1)
- 问答 (1)
- 收藏
- 关注
原创 Istio是啥?一文带你彻底了解!
Istio是啥?一文带你彻底了解!什么是 Istio?官方对 Istio 的介绍浓缩成了一句话:An open platform to connect, secure, control and observe services.翻译过来,就是”连接、安全加固、控制和观察服务的开放平台“。开放平台就是指它本身是开源的,服务对应的是微服务,也可以粗略地理解为单个应用。中间的四个动词就是 Istio 的主要功能,官方也各有一句话的说明。这里再阐释一下:连接(Connect):智能控制服务之间的调用流量
2021-10-12 16:27:05 469
原创 ingress是什么
ingress是什么需求概念详细说明Ingress和Service的区别注意点需求每个Service都要有一个负载均衡服务,所以这个做法实际上既浪费成本又高。作为用户,更希望看到Kubernetes为我内置一个全局的负载均衡器。概念通过用户访问的 URL,把请求转发给不同的后端 Service。这种全局的,为了代理不同后端Service而设置的负载均衡服务,就是Kubernetes里的Ingress服务。所以Ingress的功能其实很容易理解:所谓 Ingress,就是 Service 的Serv
2021-06-24 16:10:22 997
转载 Cinder 组件详解
理解 Block Storage操作系统获得存储空间的方式一般有两种:通过某种协议(SAS,SCSI,SAN,iSCSI 等)挂接裸硬盘,然后分区、格式化、创建文件系统;或者直接使用裸硬盘存储数据(数据库)通过 NFS、CIFS 等 协议,mount 远程的文件系统第一种裸硬盘的方式叫做 Block Storage(块存储),每个裸硬盘通常也称作 Volume(卷) 第二种叫做文件系统存储。NAS...
2018-06-27 14:23:49 2657
转载 解读Mirantis最新的OpenStack Neutron性能测试
最近,mirantis的工程师发布了最新的基于Mitaka版本的Neutron性能测试结果。得出的结论是:Neutron现在的性能已经可以用生产环境了。报告的三位作者都是OpenStack社区的活跃开发者,其中一位还是Neutron的core reviewer。并且这份报告出自实际环境(并非各种模拟环境),因此含金量还是很高的。这不禁让人觉得,或许这才是社区开发的正确打开方式,同时也佩服miran...
2018-05-03 14:57:24 1020
转载 Openstack CI持续集成测试详解--Gerrit、Zuul、Jenkins
测试的分类及必要性测试的分类测试的过程没太有太严格的分类标准,从使用的角度,我们可以从以下两个角度对测试进行分类。按照测试过程分类软件测试大概分为单元测试、集成测试、系统测试、验收测试。以下为软件测试V型图:一般由单元测试开始,集中对每一个程序单元进行测试,检查各个程序模块是否正确地实现了规定的功能。单元测试的测试对象为独立的模块,需要由开发完成。此外,开发阶段应该还需要通过代码评审等方式,进行静...
2018-04-28 15:01:35 5093
转载 SD-WAN究竟是怎么回事
最近SD-WAN在业界炙手可热,越来越多的企业客户准备或已经上马SD-WAN。在此风生水起之际,各式各样的SD-WAN供应商自然轮番出招、应接不暇。笔者在深入接触了一些国外主流商用SD-WAN厂家的技术方案后,希望能对这些主流商用SD-WAN方案中所采用的最根本的SDN特性进行一些分析,供大家讨论。说实话笔者在深入了解业界主流商用SD-WAN之前,对SD-WAN名字中Software Define...
2018-04-18 14:11:45 14881
转载 Cisco ACI网络详解
1、关于ACI网络架构介绍我自己画了一个比较典型ACI的组网,简单说下几个比较重要的组件:1.1 思科应用策略基础设施控制器(APIC): APIC是Cisco ACI交换矩阵、策略实施和健康状态监控实现自动化和管理的统一点。主要负责的任务包括交换矩阵激活、交换机固件维护、网络策略配置和实例化。以上这些功能的实现都是依靠着南向的Opflex协议(这个协议cisco已经提交IETF了,但...
2018-04-17 15:13:26 19951 3
转载 Ceph的工作原理及流程
本文将对Ceph的工作原理和若干关键工作流程进行扼要介绍。如前所述,由于Ceph的功能实现本质上依托于RADOS,因而,此处的介绍事实上也是针对RADOS进行。对于上层的部分,特别是RADOS GW和RBD.本文将首先介绍RADOS中最为核心的、基于计算的对象寻址机制,然后说明对象存取的工作流程,之后介绍RADOS集群维护的工作过程,最后结合Ceph的结构和原理对其技术优势加以回顾和剖析。寻址流程...
2018-03-29 20:55:16 622
转载 虚拟机在 OpenStack 里没有共享存储条件下的在线迁移
虚拟机在 OpenStack 里没有共享存储条件下的在线迁移几个问题:Live migration 是什么?为什么要做 Live migration?如何做 Live migration?如果你读完本文,基本了解了这三个问题的答案, 这篇文章的主要目的也就达到了。由于本文介绍的是 OpenStack 平台上动态迁移的实现,所以读者必须对 OpenStack 有一定的了解。虚拟机迁移简介动态迁移包括...
2018-03-29 18:50:10 1041
转载 基于OpenStack和Kubernetes构建组合云平台——网络集成方案综述
一谈到云计算,大家都会自然想到三种云服务的模型:基础设施即服务(IaaS),平台即服务(PaaS)和软件即服务(SaaS)。OpenStack已经成为私有云IaaS的标准,而PaaS层虽然有很多可选技术,但已经确定统一的是一定会基于容器技术,并且一定会架构在某种容器编排管理系统之上。在主流的容器编排管理系统Kubernetes、Mesos和Swarm中,Kubernetes以它活跃的社区,完整强大...
2018-03-28 11:10:26 1421 1
转载 L2 Population 原理
今天讨论跟 VXLAN 紧密相关的 L2 Population。 L2 Population 是用来提高 VXLAN 网络 Scalability 的。通常我们说某个系统的 Scalability 好,其意思是: 当系统的规模变大时,仍然能够高效地工作。L2 Population 到底解决了怎样的 Scalability 问题? 请看下图:这是一个包含 5 个节点的 VXLAN 网络,每个节点上运...
2018-03-23 17:43:44 1173
转载 Nova虚拟机启动
本来这一节打算写Neutron中各个OVS上的流表逻辑的,突然想起来之前学习Neutron时深入研究过的一个问题——虚拟机接入OVS是如何实现的?既然流表是为了虚拟机通信用的,那么没有虚拟机的接入,流表也就没有了用武之地。因此,本节就来讲一讲OpenStack中虚拟机启动过程中,是如何获取MAC、IP地址,如何在Neutron上绑定port,以及如何获取IP地址的。这一节就当做是对上一节“Neut
2017-06-29 14:41:19 1188
转载 Neutron的基本原理与代码实现
分享正文大家好,很高兴今天能与大家分享一些Neutron的知识。今天分享的思路是:Openstack网络基础、Neutron的软件实现、Nova虚拟机启动时的网络处理以及OVS流表分析。一、Openstack网络基础下面对Openstack和Neutron的介绍,要从几个关键词入手。1. 三代网络在网络这一口,OpenStack经历了由nova-network到
2017-06-28 19:06:10 3030
原创 C语言中指针探秘(一)
指针与指针变量在程序中声明变量后,编译器就会为改变量分配相应的内存单元。也就是说,每个变量在内存中会有相应固定的位置,有具体的地址。由于变量的数据类型不同,它所占的内存单元数也不相同。如下例声明了一些变量和数组。 int i = 18; //声明整形变量i并赋值char c[5] = {89,90,91,92,93}; //声明字符型数组c并初始化
2017-06-18 16:48:21 600
转载 Neutron OpenvSwitch agent工作原理
在OpenStack中目前用的比较多的L2层agent应该就是openvswitch agent了。本文大致分析了一下openvswithc agent做了哪些事。看一下openvswitch agent的启动:[plain] view plain copyneutron/plugins/openvswitch/age
2017-06-15 14:23:45 2572
转载 KVM虚拟机绑定物理CPU进行性能调优
使用KVM虚拟化,当虚拟机的vcpu不是很多时,可以通过绑定物理cpu的方式提到虚拟机的性能。实验证明Host整体性能大约能提高5%,单台虚拟机性能最高提高10%。实验数据(数据来自同事,Thanks Jack):纵坐标表示虚拟机编译2.6.32内核花费的时间,可以看到绑定cpu后性能有一定提高。PS:前提是虚拟cpu总个数不多于物理cpu总个数。
2017-06-15 11:23:48 2289
转载 以两军问题为背景来演绎Basic Paxos
背景在计算机通信理论中,有一个著名的两军问题(two-army problem),讲述通信的双方通过ACK来达成共识,永远会有一个在途的ACK需要进行确认,因此无法达成共识。两军问题和Basic Paxos非常相似1) 通信的各方需要达成共识;2) 通信的各方仅需要达成一个共识;3) 假设的前提是信道不稳定,有丢包、延迟或者重放,但消息不会被篡改。Basic Paxos最早
2017-06-09 11:20:17 816
原创 Open vSwitch 吞吐量测试报告
实验环境:首先介绍一下实验环境 系统:CentOS7 CPU:Intel(R) Xeon(R) CPU E5-2630 @ 2.30GHz Memory:DDR4 1600MHZ 16GB OVS版本:2.5.0拓扑描述:再两台物理服务器上搭建OpenStack计算节点,两台物理服务器之间通过INTEL 100G网卡进行连接,保证物理带宽够用。计算节点上分别启动5台虚拟机,计算节点上面启动着
2017-05-19 17:16:28 4363 1
原创 Nova服务重启之后过几分钟Down
检查NOVA的服务LOG如下:2017-05-04 08:21:49.453 21323 WARNING nova.compute.monitors [req-84b9acc2-c0b2-4069-a573-5a1f29c8dbfb - - - - -] Excluding nova.compute.monitors.cpu monitor virt_driver. Not in the list
2017-05-17 15:59:18 3548 1
原创 Centos 如何安装 nload
yum install gcc gcc-c++ ncurses-develwget http://www.roland-riegel.de/nload/nload-0.7.2.tar.gztar zxvf nload-0.7.2.tar.gzcd nload-0.7.2#./configure#make & make install然后通过#nload -m即可查看实时流量。或者wget http:
2017-05-04 15:57:08 2580
原创 OpenvSwitch常用命令(全)
什么是 Open vSwitchWhat is Open vSwitch?Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automat
2017-04-25 16:07:02 4457
原创 OpenStack METADATA不工作的分析方法
CentOS Linux 7 (Core)Kernel 3.10.0-229.7.2.el7.x86_64 on an x86_64centos-1 login: cloud-init[742]: 2017-03-21 08:51:04,446 - url_helper.py[WARNING]: Calling 'http://169.254.169.254/2009-04-04/meta-dat
2017-03-22 14:05:45 5965
转载 OPENSTACK中的METADATA SERVER
OPENSTACK中的METADATA SERVER虚拟机启动时候需要注入hostname、password、public-key、network-info之类的信息,以便虚拟机能够被租户管理。对于这些信息的注入openstack提供了两种方式, guestfs-inject以及metadata-server。guestfs-inject的使用很受限制尤其是并不是所有镜像都
2017-03-22 13:31:44 858
原创 OpenStack从数据库中删除掉Compute节点(hypervisor)
1.查询数据库格式2.查询ID3.查看deleted状态栏4.把compute节点的deleted状态置为15.再次查询这样就成功了
2017-03-15 18:43:45 2258
原创 Ceph OSD Down
CEPH集群跑了一段时间后有几个OSD变成down的状态了,但是我用这个命令去activate也不行ceph-deploy osd activate osd1:/dev/sdb2:/dev/sdb1只能把osd从集群中移除,然后再重建了,这个过程必须在ceph重新把数据同步完成才可以做,保证down掉的数据在其他osd中恢复。在集群中删除一个osd硬盘#
2017-03-15 18:31:34 3026 1
原创 问题记录:virsh start error:cannot get interface MTU on 'qbrXXX':No such device
在compute节点上发现虚拟机处于错误状态,在virsh命令中重启则出现了如下错误后来只能把这些起不来的虚拟机删除。
2017-03-15 18:02:47 6104
转载 KVM-Virsh指令详解
linux kvm 的虚拟机处于暂停状态怎么开机 和 KVM-Virsh指令 [root@ok home]# virsh list Id Name State---------------------------------------------------- 1 13svn
2017-03-14 14:54:02 10662
转载 DPDK分析--深入浅出
概述随着互联网的高速发展,云产业的快速突起,基础架构网络逐渐偏向基于通用计算平台或模块化计算平台的架构融合,来支持多样化的网络功能,传统的PC机器在分布式计算平台上的优势更为明显。在这些针对海量数据处理或海量用户的服务场景,高性能编程显得尤为重要。全文路线分析了目前的传统服务器结构以及可能存在的问题引出需求提出DPDK开发套件如何突破操作系统限制之后分析了dpdk的整体结构
2017-03-01 20:08:27 8117 1
转载 指针函数与函数指针
1.指针函数先看下面的函数声明,注意,此函数有返回值,返回值为int *,即返回值是指针类型的。[cpp] view plain copyint *f(int a, int b); 上面的函数声明又可以写成如下形式:int* f(int a, int b);让指针标志 * 与int紧贴在一起,而与函数名f
2017-02-07 17:36:06 345
转载 C语言中static的作用(精炼)
static的作用(精辟分析) 在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容
2017-01-17 16:35:14 410
转载 C语言指针详解
指针我们通过指针,可以简化一些 C 编程任务的执行,还有一些任务,如动态内存分配,没有指针是无法执行的。所以,学习指针是很有必要的。 正如您所知道的,每一个变量都有一个内存位置,每一个内存位置都定义了可使用连字号(&)运算符访问的地址,它表示了在内存中的一个地址。请看下面的实例,它将输出定义的变量地址:#include int main (){ int var1;
2017-01-12 11:16:25 2082
转载 Linux Core Dump
Linux Core Dump当程序运行的过程中异常终止或崩溃,操作系统会将程序当时的内存状态记录下来,保存在一个文件中,这种行为就叫做Core Dump(中文有的翻译成“核心转储”)。我们可以认为 core dump 是“内存快照”,但实际上,除了内存信息之外,还有些关键的程序运行状态也会同时 dump 下来,例如寄存器信息(包括程序指针、栈指针等)、内存管理信息、其
2017-01-10 14:59:33 589
原创 sem_init函数用法
sem_init函数sem_init函数是Posix信号量操作中的函数。sem_init() 初始化一个定位在 sem 的匿名信号量。value 参数指定信号量的初始值。 pshared 参数指明信号量是由进程内线程共享,还是由进程之间共享。如果 pshared 的值为 0,那么信号量将被进程内的线程共享,并且应该放置在这个进程的所有线程都可见的地址上(如全局变量,或者堆上动态分配的变量)。如果
2017-01-10 13:17:51 42921 1
原创 C语言如何打印LOG
第一种LOG函数#define LOG_PROC(log_level, format, arguments...) \ printf("[%s] ", log_level); \ printf(format, ##arguments); \ printf("\n");第二种LOG函数// 2UINT1 g_log_level; //设置日志显示级别#def
2017-01-10 09:20:22 6029
转载 linux调试----addr2line使用
我们在linux下开发程序时,经常遇到Segmentation fault的错误信息,如果代码比较少还可以去一行行排除,但是代码量比较大的时候,往往是一件头疼的事情。Segmentation fault会有地址抛出,我们可以利用addr2line定位到程序出错的行,这样是不是很方便的排查问题。下面就简单的介绍一下addr2line的使用方法。编写测试代码故意产生Segmentati
2017-01-09 17:43:57 1907
转载 C语言程序的编译过程
c语言程序的编译过程#includeint main(){ printf("Hello World!\n"); return 0;} 对于这个最简单的“Hello World!”程序——hello.c,它的生命周期一开始时是一个高级c程序,因为它处于这种形式时,它是能够被人读懂的。然而,为了在系统上运行hello.c
2017-01-09 17:30:32 587
转载 dmesg命令
Linux dmesg命令 Linux 命令大全Linux dmesg命令用于显示开机信息。kernel会将开机信息存储在ring buffer中。您若是开机时来不及查看信息,可利用dmesg来查看。开机信息亦保存在/var/log目录中,名称为dmesg的文件里。语法dmesg [-cn][-s ]参数说明:-c 显示信息后,清除ri
2017-01-06 10:42:59 944
原创 如何安装Ceph并对接OpenStack
如何安装Ceph并对接OpenStack安装Ceph准备工作:关闭SELinuxsed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/configsetenforce 0打开Ceph端口# firewall-cmd --zone=public --add-port=6789/tcp --permanent# firewa
2016-11-25 09:22:55 7918
原创 磁盘满了导致OpenStack虚拟机异常
OpenStack的磁盘已经满了。默认装centos的时候root分区很小,而home分区却很大。之前创建的一台虚拟机连不上virsh了。OpenStack界面上不能重启了。只能删除。 virsh list也看不到了 发现虚拟机文件里面的disk和console.log文件被改成了root权限,正常的应该是qemu权限。 而且libvirt.xml文件的配置信息被清除了。这个应该是libv
2016-09-18 14:17:32 2625
原创 Keystone Too Many Connections Problem
环境 OpenStack HA 3 controllers 我的keystone服务是关闭的。由httpd来接管keystone服务[root@controller1 ~]# systemctl stop openstack-keystone[root@controller1 ~]# systemctl start httpd但是我的keystone连不上数据库了。打开logvi /var/
2016-09-14 10:16:32 1911
用什么方法可以实现一个实验室中的电脑相互博弈,做一些博弈试验
2014-06-30
TA创建的收藏夹 TA关注的收藏夹
TA关注的人