自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

wuyongpeng的专栏

技术点线面

  • 博客(42)
  • 资源 (3)
  • 收藏
  • 关注

原创 gunicorn实现flask并发

目录一、什么是gunicorn1、简介2、优势3、源码分析入口二、gunicorn安装部署三、gunicorn简单应用四、gunicornworker Model1、同步worker模式sync2、异步worker模式3、Tornado Workers4、AsyncIO Workers(gthread, gaiohttp)5、各模式对比6、如何选择工作模式五、gunicorn启动多少个workers子进程六、如何动态修改worker数量七、多.

2021-02-23 19:07:28 11168 2

原创 Python基于flask实现restful

一、python Web框架选择1、DjangoDjango如此知名,很大程度上是因为提供了非常齐备的官方文档,它提供了一站式的解决方案,包含缓存、ORM、管理后台、验证、表单处理等,使得开发复杂的数据库驱动的网站变得很简单。但正因为它坚持自己对于Web框架的理解,系统耦合度太高,替换掉内置的功能往往需要花费一些功夫,所以学习曲线也相当陡峭。2、FlaskFlask是一个轻量级Web应用框架,它基于Werkzeug实现的WSGI和Jinja2模板引擎。它的设计哲学和Django不同:只保留核

2021-02-23 15:24:38 4100

原创 vGPU设备文件系统分析

一、/sys文件系统下的目录结构1、/sys/devices目录,包含所有设备的真实对象,是内核对系统中所有设备的分层次表达模型,也是/sys文件系统管理设备的最重要的目录结构;2、/sys/bus目录,是内核设备按总线类型分层放置的目录结构,devices中的所有设备都是连接于某种总线之下,在这里的每一种具体总线之下,可以找到每一个具体设备的符号链接,是构成Linux统一设备模型的一部分;3、/sys/class目录,是按照设备功能分类的设备模型,例如vGPU相关设备都在/sys/...

2021-02-18 15:56:59 1151

原创 NVIDIA vGPU应用

目录一、vGPU产品类型1、NVIDIA vGPU产品简介2、如何选择合适的vGPU二、基于KVM创建vGPU设备1、物理机安装vGPU驱动2、切换到物理GPU对应的mdev_supported_types目录3、mdev_supported_types子目录遍历待创建的vGPU类型4、确认可在物理GPU上创建vGPU类型实例的个数5、生成随机uuid写入create文件6、确认vGPU设备已创建三、查看节点生成的 mdev 设备列表1、create文件.

2021-02-08 20:20:48 10262 1

原创 nova实现vGPU功能

一、创建vGPU虚机流程简述同-普通虚机创建流程,如下1、[nova-api进程] nova/api/openstack/compute/servers.py create(),2、[nova-api进程] nova/compute/api.py create() 调用同文件中 _create_instance()3、[nova-api进程] nova/conductor/api.py build_instances() --> nova\conductor\rpcapi.py build

2021-02-08 10:24:57 1282 1

原创 基于libvirt创建vGPU实例

一、什么是vGPU?vGPU(virutal GPU)是实现在虚机中使用GPU资源的一种方式。虚机使用GPU的另外一种方式是passthrough,即GPU直通到vm虚机中。

2021-02-03 21:02:13 4520 2

原创 Ussuri版kolla-ansible脚本分析

基于OpenStack Ussuri版,源码下载地址:# git clone https://github.com/openstack/kolla-ansible -b stable/ussuri相关命令:# kolla-ansible -i ./multinode bootstrap-servers# kolla-ansible -i ./multinode prechecks# kolla-ansible -i ./multinode deploy简介:kolla-ansible是自动

2020-12-14 14:39:31 1084

原创 Python调用Zabbix API实现自定义功能

一、zabbix API1、API描述Zabbix API允许以编程方式检索和修改Zabbix的配置,并提供对历史数据的访问。用于以下场景:1)创建新的应用程序以使用Zabbix;2)将Zabbix与第三方软件集成;3)自动执行常规任务。Zabbix API是基于Web的API,作为Web前端的一部分提供。它使用JSON-RPC 2.0协议,这意味着:1)该API包含一组独立的方法;2)客户端和API之间的请求和响应使用JSON格式进行编码。2、API常用方法Z.

2020-09-21 13:29:47 935

原创 Qemu Guest Agent方式实现libvirt与虚机交互

一、qga简介1、qga工具qemu guest agent,简称qga,是一个运行在虚拟机内部的普通应用程序,可实现宿主机libvirt和虚拟机的通信,宿主机可通过向虚机中的qga发送命令控制虚机。这种通信不依赖网络,而是通过virtio-serial的方式。使用virtio传递消息,对虚拟机和主机的网络设置没有任何要求,且效率更高,类似于VMware Tools。2、宿主机libvirt和VM通信方式选择宿主机若要和VM通信,需要满足以下两个条件:1)vm内部和外部宿主机之.

2020-08-11 16:14:15 8693 1

原创 openstack policy机制

一、什么是policypolicy策略,是OpenStack用来约束不同等级用户的操作权限,用于自定义权限管理的一种机制。二、为什么要用policy1、基于keystone理解policyKeystone中有User(用户)、Project(租户)、role(角色)三个概念,使用基本流程为:1)创建租户 2)创建用户 3)创建角色 4)给用户和租户赋予角色赋予角色之后,角色还只是一个空的概念定义,没有实际意义。真正限制用户角色执行具体action操作的,是policy.json.

2020-08-11 15:22:38 2077

原创 why or why not GPU

一,CPU和GPU1、概念区分CPU,全称central processing unit,即中央处理器,是一台计算机的运算核心和控制核心。CPU主要是负责多任务管理、调度,它是领导者,负责指挥。GPU,全称Graphic Processing Unit,即图像处理单元,是显卡上的核心处理芯片。GPU主要是用于大量的重复计算。一个GPU具有数千个计算核心,可以有效地并行处理工作负载。例如3D应用程序、视频和图像渲染等大规模并行任务。GPU不等于显卡,显卡是由GPU、显存、供电模块.

2020-06-06 19:49:06 284 1

原创 Python定时任务-APScheduler

目录一,简介1,安装APSchedule3.6.02,APScheduler四个组件二,选择调度器、作业存储、执行器和触发器1,schedulers调度器选择2,jobstores作业存储选择3,executors执行器选择4,triggers触发器选择三,调度器scheduler启动关闭和配置1,启动调度器2,关闭调度器3,配置调度器四,j...

2019-03-29 16:32:58 28474 1

原创 Heat模板及简单应用

一,Heat模板结构Heat的模版是Heat的核心。1,模板格式    Heat 目前支持两种格式的模板,一种是基于 JSON 格式的 CFN 模板;另外一种是基于 YAML 格式的 HOT 模板。    CFN 模板主要是为了保持对 AWS 的兼容性。HOT 模板是 Heat 自有的,资源类型更加丰富,更能体现出 Heat 特点的模板。    此处只涉及HOT( Heat...

2018-09-25 20:55:03 5677

原创 OpenStack Heat编排

一,什么是Heat Heat是OpenStack提供的自动编排功能的组件,基于描述性的模板,来编排复合云应用程序。Heat向开发人员和系统管理员提供了一种简便地创建和管理一批相关的OpenStack资源的方法,并通过有序且可预测的方式对其进行资源配置和更新。用户可以使用Heat的示例模板或自己创建模板来描述OpenStack资源以及应用程序运行时所需的任何相关依赖...

2018-07-18 20:18:47 12450

原创 nova通过cloudinit注入公钥失败-问题分析

nova注入密钥有两种方式:1、metadata 2、config dirve ,此处分析基于metadata方式(一)分析思路密钥没有登录成功,查看服务器端,如果网络能通,且ssh配置正确,公钥应该是没有注入到指定目录下。需要根据流程分析,如下:1,首先,确认在实例中能否获取到需要的密钥,就是先判断在实例中能否通过指定的方式(metadata/configdrive)获取到metadata的值,...

2018-06-26 09:44:42 1671

原创 云主机ssh密钥登录

使用云主机时,出于安全性考虑,需要设置ssh登录。ssh主要有两种登录方式:第一种为密码口令登录,第二种为公钥登录,登录不需要输入密码。这里主要分析密钥登录方式(一)基础 1) 公钥:用于加密,存在于服务器 2) 私钥:用于解密,存在于客户机(二)流程 1)客户端向服务器发出连接请求 2)服务器查看客户端公钥(~/.ssh/authorized_keys)该客户机(...

2018-06-25 21:46:43 4241

原创 OpenStack-Pike版Ironic安装指导分析-(下)

基于OpenStack官网指导,结合实际应用,予以总结。整体结构:Bare Metal service overview 裸金属服务概况Install and configure the Bare Metal service 安装配置裸金属服务Install and configure for Red Hat Enterprise Linux and CentOS 红帽/CentOS环境安装/配置...

2018-04-15 17:11:17 3429

原创 OpenStack-Pike版Ironic安装指导分析-(上)

基于OpenStack官网指导,结合实际中的应用,予以总结。整体结构:Bare Metal service overview 裸金属服务概况Install and configure the Bare Metal service 安装配置裸金属服务Install and configure for Red Hat Enterprise Linux and CentOS 红帽7/CentOS7环境下...

2018-04-15 15:15:08 4105 4

原创 OpenStack cloud-init架构和应用

一,cloud-init简介    cloud-init是专为云计算环境中虚拟机实例/裸金属实例的初始化而开发的一个开源工具,它安装在虚拟机镜像/裸金属镜像中,创建实例时,通过nova组件的configdrive把预注入的数据打包成镜像,并挂载在实例的cdrom中,实例启动时,通过读取cdrom中的相关数据,对虚拟机进行初始化配置。1,cloudinit安装    centos和ubuntu se...

2018-03-17 16:01:22 4477

原创 Ironic Key Technologies--IPMI

IPMI简介1、什么是IPMI    IPMI是智能型平台管理接口(Intelligent Platform Management Interface)的缩写,管理基于 Intel结构的企业系统中所使用的外围设备采用的一种工业标准。    IPMI信息通过基板管理控制器BMC进行交流。BMC,是底板管理控制器 (Baseboard Management Controller)的缩写,BMC是以嵌入...

2018-01-14 15:23:14 2304

原创 Ironic Key Technologies--PXE网络引导

实际工作中,对计算机、服务器安装操作系统,除了使用光驱、USB接口引导镜像,还可以通过PXE网络引导的方式安装。通过PXE引导的方式,可以批量操作,效率高,也容易维护。 一,什么是PXE  PXE(Pre-boot Execution Environment)是由Intel设计的协议,它可以使计算机通过网络启动。协议分为client和server两端,PXE client在网卡的ROM

2017-12-10 14:22:47 1192 1

原创 OpenStack-Ironic裸金属简介

一,Ironic简述    简而言之,OpenStack Ironic就是一个进行裸机部署安装的项目。    所谓裸机,就是指没有配置操作系统的计算机。从裸机到应用还需要进行以下操作:  (1)硬盘RAID、分区和格式化;  (2)安装操作系统、驱动程序;  (3)安装应用程序。    Ironic实现的功能,就是可以很方便的对指定的一台或多台裸机,执行以上一系列的

2017-04-16 22:14:38 22068

原创 Linux分区及LVM

操作环境:vmware虚机一、整体流程在使用fdisk/parted等分区工具对硬盘分区之后,是否使用LVM由用户决定 : 1)可以直接对分区后的硬盘进行格式化操作,之后挂载分区; 2)也可以先用LVM逻辑卷管理工具对分区后的物理卷进行管理,之后再对逻辑卷进行格式化操作,之后挂载分区。( LVM的分区类型为8e) 使用LVM的好处是方

2017-03-19 13:14:17 25214

翻译 Store metadata on a configuration drive

目录Requirements and guidelinesEnable and access the configuration driveConfiguration drive contentsOpenStack metadata formatEC2 metadata formatUser dataConfiguration drive format

2016-07-16 19:10:37 1013

原创 DHCP源码分析-报文解析和封装

接收到报文后,通过相应的报文解析函数,将 DHCP报文统一解析为packet结构体。packet 结构用于记录接收到的报文信息,及处理 DHCP报文时需要的各种辅助变量,其中的 raw 字段用于记录报文的首地址,options字段用于记录解析出来的 option。

2016-05-22 11:21:25 7969 1

原创 DHCP源码分析-dhcpv6模块

dhcpv6主要流程:{  调用log_packet_in()记录接收包的信息;  调用build_dhcpv6_reply(&reply, packet)创建回复packet;  发送reply;}

2016-05-22 10:48:35 5075 1

原创 Postgres数据库备份与恢复总结

前段时间负责一个政务云项目的升级,从单机容器环境,升级到kubernetes集群环境。考虑到现场环境以及稳定性等因素,决定采取冷备份的方式。     实际生产环境中,使用的是posgres数据库,数据库运行在一个docker容器中,运行七个数据库,有web,coreapi,以及openstack相关的五个组件:keystone,nova,glance,cinder,neutron。 

2016-02-14 11:02:05 1192

原创 云计算架构

一, 云计算简介       云计算,简单来说,就是用户根据自身的需要,购买运营商的服务器存储空间和计算资源,当然,还有售后服务。这样就省得自己去买高价服务器,同时也省下心不用去管理运维,降低成本后,就可以更多的去专注于自身业务。比如铁道部要面临春运抢票,需要很多服务器集群,投资巨大,而之后的这些硬件设施又大多闲置着,很浪费。如果租用云系统,问题就好解决了。

2016-01-03 14:49:09 1048

原创 DHCP源码分析-dhcp模块

一, DHCP函数流程        函数void dhcp (struct packet *packet)是处理DHCP包的入口函数,在进入这个函数的时候,对包的解析已经完成,已经将包的内容转换成内部结构struct packet。dhcp()函数主要做的工作就是对不同的packet -> packet_type对应的包进行处理。二, locate

2016-01-01 18:49:56 11513 2

原创 DHCP源码分析_dhcpd后台进程子模块

dhcpd是dhcp服务器端后台进程文件,dhcpd后台程序总是读取配置文件 /etc/dhcpd.conf。一,守护进程的基本流程    dhcpd基本流程为:main(){        / *设置isc和dns库管理* /        / *建立客户分类系统* /        / *初始化omapi系统* /   

2016-01-01 13:58:05 5337 3

原创 LDAP-轻量目录访问协议

LDAP总结:仿冒+改良=创新一, LDAP 概念        LDAP(Lightweight Directory Access Protocol),轻量级目录访问协议。它是目录访问协议的一个标准。它是基于X.500 标准的,可以根据需要定制。轻量级目录访问协议以信息目录的形式存在,在该目录中可只定义一次用户和组,而在多台机器和多个应用程序间共享它们。        目录服

2015-12-27 19:46:46 3554

原创 DHCP源码分析_子模块划分

DHCP服务器的主要模块为dhcpd后台进程子模块、ipv4报文处理子模块、ipv6报文处理子模块、报文解析和封装子模块、租约管理子模块。    模块间调用关系如图:    dhcpd为服务器守护进程文件,用来初始化系统,解析命令参数等;    处理ipv4报文的模块以dhcp()为入口函数,dhcp()函数主要完成对不同类型的ipv4进行的处理;

2015-12-27 11:22:52 1212

原创 DHCP源码分析-系统概述

先名词解释下:     DHCP:动态主机配置协议(Dynamic Host Configuration Protocol),是一个局域网的网络协议,使用UDP协议工作。它的前身是BOOTP(Bootstrap Protocol)初始引导协议。     BOOTP则可以自动地为那些主机设定TCP/IP环境。但BOOTP有一个缺点:您在设定前须事先获得客户端的硬体位址,而且,与IP的

2015-12-27 11:09:16 3932 2

原创 OpenFLow协议学习笔记-(1)概述

OpenFlow是一种新的网络协议。

2015-08-08 19:45:30 5062

转载 分形理论

一,引言在《Foundations of F#》的第七章中,作者在介绍Math命名空间时举的例子是绘制Mandelbrot集合。这个看起来挺奇怪的东东以前还真没见过,网上一查才知道,原来它是如此的优美动人。由于该集合的定义与分形相关,所以先来了解下分形的概念。二,什么是分形(Fractal)1967年,美国数学家Mandelbrot曾出这样一个著名的问题:英格兰的海岸线到底

2015-07-04 23:41:31 7553

原创 Mandelbrot集

一,先堆一下概念: Mandelbrot集合是在复平面上组成分形的点的集合,它正是以数学家Mandelbrot命名。 Mandelbrot集合可以用复二次多项式。从数学上来讲,Mandelbrot集合是一个复数的集合。一个给定的复数c或者属于Mandelbrot集合M,或者不属于。比如,取c = 1,那么这个序列就是(0, 1, 2, 5, 26, …),显然它的值会

2015-07-04 23:37:36 1659

原创 Linux内核符号表

一,什么是符号(Symbols)?    什么是Symbol?  其实就是kernel中的变量(Variable Name)或函数名称(Function Name),    这样可以方便程序员在写程序时可以直接参照这一份Symbol的索引文件,找到所需要的kernel信息,这一份Symbol的索引文件又称为kernel symbol table。    二,内核符号表(Kernel

2015-07-03 18:18:10 14923 1

原创 加载内核模块-Unknown symbol错误分析

在调试过程中,发现一个问题,编译生成一个KO文件,insmod加载后报错:Unknown symbol var_set_integer (err 0)Unknown symbol parse_arg_eq (err 0)问题分析思路:一、用命令查看内核中是否已有这个内核符号,例如要查看是否有var_set_integer这个内核符号,输入命令:#cat

2015-07-03 11:03:51 42551 2

原创 stdin、stdout和STDIN_FILENO、STDOUT_FILENO

这周末开始看《APUE》,和《linux内核设计与实现》、《深入理解linux内核》同步往前推进。图1-4代码中用到了while ((n = read(STDIN_FILENO, buf, BUFFSIZE)) > 0) if (write(STDOUT_FILENO, buf, n) != n) err_

2015-06-28 09:45:25 3066

原创 DMA总结

概念“Direct Memory Access(存储器直接访问)。这是指一种高速的数据传输操作,允许在外部设备和存储器之间直接读写数据。整个数据传输操作在一个称为"DMA控制器"的控制下进行的。CPU除了在数据传输开始和结束时做一点处理外(开始和结束时候要做中断处理),在传输过程中CPU可以进行其他的工作(前提是未设置停止CPU访问)。这样,在大部分时间里,CPU和输入输出都处于并行操作。因此

2015-06-25 12:16:23 38142 3

x-ftp直接用

xftp 绿版

2018-10-23

shell工具lv版本

shell 绿绿

2018-09-05

JDK6.0 API

java jdk 6.0 api 用来查询java的很好工具

2012-11-05

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除