运维部落

香港vps促销1G99元 点击购买 美国vps促销512M59元 点击购买 日本vps促销1G100元 点击购买

将Centos7的yum配置为阿里云的镜像(完美解决yum下载太慢的问题)

2017年10月12日 没有评论

最近在研究一些深度学习框架和大数据可视化的应用,经常会编译一些文件,而yum的默认地址下载太慢,所以用国内比较稳定的阿里云源。

参考

http://mirrors.aliyun.com/help/centos?spm=5176.bbsr150321.0.0.d6ykiD

话不多说,上命令
1、备份
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/
CentOS 5

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo
CentOS 6

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo

CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

3、之后运行yum makecache生成缓存

haproxy 优化参数解释

2017年10月1日 没有评论

option http-server-close
假设你有一台HAProxy前端与十个不同的后端通信,且这十个后端不支持HTTP keep-alive。这个设置让HAProxy在客户端和前端之间保持一个持久的连接,并在所有后端服务器之间轮询HTTP请求。当然,要发挥这个设置的功效的话需要客户端同样启用keep-alive。

timeout client 30s
timeout server 30s
这两个设置一起用来设置 HAProxy发送请求的超时时长。实际上,HAProxy等待服务器返回信息给客户端需要多久呢?大多数应用都有某种最大延迟时间,因此你需要添加超时时长。对我们来说,API等待响应的最长时间是30秒,所以每个内部服务根据自身的服务级等级协议(SLA)都应该设置低于30秒的超时时长。注意:如果服务器缓慢地以流的方式传输一个字节,也就是每29秒传输一个字节的话,你将不能触发读超时,所以你可能需要有一个单独的线程监控这样的请求,以保证在适当的时间内完成传输。你还应当把客户端和服务端的超时时长设置为相同的值-即套接口上所期望的读超时时长。

timeout connect 3100
这是一个不同于客户端和服务端超时时长的超时时长!它是HAProxy应当用来试图连接主机所花费的时长。在RWilio以前的日子里,它设置为与服务器超时时长30秒相同的值,因此如果主机宕机的话,HAProxy将试图连接同一个主机30秒。当服务器和客户端主机位于同一个机器上或者在同一个局域网内(或者AZ主机的附近)的时候,这样的连接通常发生在毫秒级。我们允许在进一步处理默认的重传窗口时等待3秒,并且允许有小量的缓冲。
不像服务器超时时长,连接超时时长隐含着客户端的重新连接请求是安全的这层意思。

retries 2
option redispatch
当我说30秒的连接超时时长意味着HAProxy将在30秒内试图进行一次未连接上的连接的时候,我撒谎了。实践证明: 默认情况下,HAProxy将试图进行3次连接请求。因此30秒的连接超时实际上是120秒的连接超时,这违反了服务级别协议,而且意味着我们给客户兑现的是空头支票。
如果第一台主机关机了,那么通常假设HAProxy自动给第二台主机发送请求。不过这仅仅在HAProxy对这个主机进行健康检查后并标记这台主机已经关机的情况下才是这样的。如果一台主机关机了而且对它的健康检查花费了20秒,那么这时你正在对这台主机进行可能的20秒的无效请求。重新分发选项让最终的连接请求发送给另一台下游主机上,因此不同主机发送各自的请求在某种程度上保护了已经不健康的主机。
这两个设置混合在一起缩减重试次数到2,并且这也意味着在放弃这个连接并对另一台主机进行连接之前,我们试图对这台主机进行连接的最大超时时长只有8秒。

option httpchk GET /healthcheck
默认情况下,HAProxy只是对主机打开了一个TCP连接来检查这台主机是否启动。这种ping只能检测这台主机是否关机,不过不能确定它是不健康的(磁盘损坏,网络连接不正常)。httpchk选项将给位于后端的终端节点发送HTTP请求。后端可以进行自检,并回答自身是否健康。注意健康检查应当是相当保守的一种做法,而且通常还扩大了单台主机健康的范围。健康检查未通过将使HAProxy给这台主机不发送任何包,而且如果所有的主机同时都“不健康”,那么你将没有任何后端可依赖了。 我希望这篇文章对你有帮助-我已经在 这儿发布了HAProxy配置的所有更新版本。至于其他问题, 可以阅读手册,这样可以让服务器在性能、可靠性、可用性和稳定性方面得到很大的提高。希望这篇概览能够节省你的时间。

分类: 软件使用 标签: ,

如何禁止Win2008R2断电重启进入修复模式

2017年9月10日 没有评论

解决断电或者其他原因导致系统默认自动进入修复模式,导致系统无法正常开机。

桌面右键新建一个文档文本,双击打开文件新建文本文档,
复制以下命令到文本里面!
bcdedit /set {default} bootstatuspolicy ignoreallfailures
bcdedit /set {current} recoveryenabled No

在界面的左上角点击“文件”“另存为”,打开保存界面。在“保存格式”一行中选择“所有文件”;再把“文件名称”改为“XXXX.bat”的格式,保存为一个可运行的bat文件

然后桌面就出现了一个bat文件,只要双击文件就可以运行,系统窗口会一闪而过,接着可以删除该bat文件,电脑以后就不会出现修复模式了。

使用 HAProxy 做负载均衡(转)

2017年8月7日 没有评论

HAProxy 表示 High Availability Proxy ,是开源的负载均衡与代理软件。GitHub,Imgur,Instagram,Twitter 都在用它,阿里云的 SLB 服务也是基于 HAProxy 做的。

虚拟机

balancer:192.168.33.60
web1:192.168.33.61
web2:192.168.33.62
database:192.168.33.63
安装 HAProxy

yum install haproxy -y
systemctl start haproxy
systemctl enable haproxy
HAProxy 配置

HAProxy 的配置文件分成了两大部分:

Global:设置进程范围的参数。
Proxies:defaults,listen,frontend,backend …
HAProxy 配置:Global

复制默认的 haproxy.cfg 文件:

cd /etc/haproxy; sudo cp haproxy.cfg haproxy.cfg.bak
打开 haproxy.cfg :

vi /etc/haproxy/haproxy.cfg
你会看到这里已经定义了两个部分,global 还有 defaults 。

在 defaults 里面,查找:

mode http
option httplog
把 http 替换成 tcp :

mode tcp
option tcplog
HAProxy 配置:Proxies

frontend www
bind 192.168.33.60:80
default_backend web-backend
然后继续添加:

backend web-backend
balance roundrobin
mode tcp
server web1 192.168.33.61:80 check
server web2 192.168.33.62:80 check
重启 HAProxy

systemctl restart haproxy

Nginx could not build the server_names_hash 错误的解决办法

2017年7月4日 没有评论

在给nginx 配置了一个超长的域名后,通过 /usr/local/nginx/sbin/ngnix -t 检查配置文件时出现一下错误:
. 代码如下:
could not build the server_names_hash, you should increase server_names_hash_bucket_size: 32

解决办法是在nginx的配置文件的http段中增加如下配置:
. 代码如下:
server_names_hash_bucket_size 64;

如果已经存在,需要加大后面的数值,注意:该数值是32的倍数为宜。
下面是nginx官方文档:
. 代码如下:
如果定义了大量名字,或者定义了非常长的名字,那可能需要在http配置块中使用server_names_hash_max_size和server_names_hash_bucket_size指令进行调整。server_names_hash_bucket_size的默认值可能是32,或者是64,或者是其他值,取决于CPU的缓存行的长度。如果这个值是32,那么定义“too.long.server.name.example.org”作为虚拟主机名就会失败,而nginx显示下面错误信息:
could not build the server_names_hash,
you should increase server_names_hash_bucket_size: 32
出现了这种情况,那就需要将指令的值扩大一倍:
http {
server_names_hash_bucket_size 64;

如果定义了大量名字,得到了另外一个错误:
could not build the server_names_hash,
you should increase either server_names_hash_max_size: 512
or server_names_hash_bucket_size: 32
那么应该先尝试设置server_names_hash_max_size的值差不多等于名字列表的名字总量。如果还不能解决问题,或者服务器启动非常缓慢,再尝试提高server_names_hash_bucket_size的值。

分类: 解决方案 标签: ,

MAC地址规则及算法介绍(转)

2017年7月2日 没有评论

概述

·MAC地址(MAC Address)

·MAC(Medium/Media Access Control)地址,用来表示互联网上每一个站点的标识符,采用十六进制数表示,共六个字节(48位)。其中,前三个字节是由IEEE的注册管理机构RA负责给不同厂家分配的代码(高位24位),也称为“编制上唯一的标识符”(Organizationally Unique Identifier),后三个字节(低位24位)由各厂家自行指派给生产的适配器接口,称为扩展标识符(唯一性)。一个地址块可以生成224个不同的地址。MAC地址实际上就是适配器地址或适配器标识符EUI-48。

解释

·MAC(Media Access Control,介质访问控制)地址,也叫硬件地址,长度是48比特(6字节),由16进制的数字组成,分为前24位和后24位:

·前24位叫做组织唯一标志符(Organizationally Unique Identifier,即OUI),是由IEEE的注册管理机构给不同厂家分配的代码,区分了不同的厂家。
·后24位是由厂家自己分配的,称为扩展标识符。同一个厂家生产的网卡中MAC地址后24位是不同的。

·MAC地址对应于OSI参考模型的第二层数据链路层,工作在数据链路层的交换机维护着计算机MAC地址和自身端口的数据库,交换机根据收到的数据帧中的“目的MAC地址”字段来转发数据帧。

·其中第1字节的第8Bit(如图中00-50-BA-…对应的00000000-01010000-10111010-…,加粗字体的Bit)标识这个地址是组播地址还是单播地址。这是由以太网的传输协议高字节先传,但每一字节内低位先传的特性所决定的,见IEEE 802.3 3.2.3 Address fields: “The first bit (LSB) shall be used in the Destination Address field as an address type designation bit to identify the Destination Address either as an individual or as a group address. If this bit is 0, it shall indicate that the address field contains an individual address. If this bit is 1, it shall indicate that the address field contains a group address that identifies none, one or more, or all of the stations connected to the LAN. In the Source Address field, the first bit is reserved and set to 0.”。事实上这传输的顺序为000000000000101001011101…“The first bit (LSB)”即是前言的第8Bit。

·网卡的物理地址通常是由网卡生产厂家烧入网卡的EPROM(一种闪存芯片,通常可以通过程序擦写),它存储的是传输数据时真正赖以标识发出数据的电脑和接收数据的主机的地址。

·也就是说,在网络底层的物理传输过程中,是通过物理地址来识别主机的,它一定是全球唯一的。比如,著名的以太网卡,其物理地址是48bit(比特位)的整数,如:44-45-53-54-00-00,以机器可读的方式存入主机接口中。以太网地址管理机构(除了管这个外还管别的)(IEEE)(IEEE:电气和电子工程师协会)将以太网地址,也就是48比特的不同组合,分为若干独立的连续地址组,生产以太网网卡的厂家就购买其中一组,具体生产时,逐个将唯一地址赋予以太网卡。
形象地说,MAC地址就如同我们身份证上的身份证号码,具有全球唯一性。

算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- lua实现 By:Wiger
-- 获取随机MAC地址
function getRandomAddress()
    local adrArray = { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F" }
    local adrStr = ""
 
    math.randomseed(tostring(os.time()):reverse():sub(1, 6))
    for i = 1, 12 do
        local index = 0
        if i ~= 2 then
            index = math.random(1, 16)
        else
            -- 第二位只能是偶数
            local indexArray    = { 1, 3, 5, 7, 9, 11, 13, 15 }
            index               = indexArray[math.random(1, 8)]
        end
 
        adrStr = adrStr .. adrArray[index]
    end
 
    return adrStr
end

参考文献:http://baike.baidu.com/view/69334.htm

分类: 网络产品 标签: ,

windows 2008 R2 用户打开句柄数限制

2017年6月27日 没有评论

HKEY_LOCAL_MACHINE
– SOFTWARE
– – Microsoft
– – – Windows NT
– – – – CurrentVersion
– – – – – Windows

USERProcessHandleQuota:项设置用户句柄数量,默认值同样为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值。同样地,对于具有2GB或更多物理内存的系统,不妨将用户句柄数直接设置为上限 18000(10进制);

EPON和GPON区别在哪里?

2017年6月18日 没有评论

两种都是用光纤传输的形式,不过两者有个区别:EPON和GPON采用的标准不一样,可以说GPON更高级点,可以传输更大的带宽,可带的用户也比EPON更多。
GPON源自光纤通信早期的APON\BPON技术,由此发展过来,传输码流用的是ATM帧格式。
EPON的E指的是互联以太网,所以EPON诞生之初就是要求能够同互联网直接无缝衔接,所以EPON的码流走的是以太网的帧格式。当然,为了适应光纤上传输,所以在以太网帧格式的帧的外面,包了一层EPON定义的帧格式。

所以概略来说:EPON和GPON在光传输上的码流格式不相同,由此导致不同的芯片设计方式和产品表现特征。 GPON源自光纤通信早期的APON\BPON技术,由此发展过来,传输码流用的是ATM帧格式。 EPON的E指的是互联以太网,所以EPON诞生之初就是要求能够同互联网直接无缝衔接,所以EPON的码流走的是以太网的帧格式。当然,为了适应光纤上传输,所以在以太网帧格式的帧的外面,包了一层EPON定义的帧格式。具体的帧格式,比较多,这边就不写了,网络上可以很方便查询到。或者也可以来信:strive_wu@hotmail.com 10G EPON又有不同。 最初的1G EPON,码流效率比较低,不如GPON的高,所以 支持GPON的人士就以此来诟病EPON。因为GPON和EPON的诞生发展,两者是基本并行的。所以可以理解肯定各有特点。 但是,10G EPON的诞生,与EPON和GPON都间隔了很久的时间,那时EPON和GPON的技术和应用情况都随着长时间市场反馈而成熟稳定。所以,10G EPON得以参考EPON和GPON的技术特长,兼取两者。因此,10G EPON在光纤上传输的码流,(我个人意见)可以说是参考了GPON的码流优势的,然后又继续保持了EPON对以太网无缝接入的特长。从而诞生了10G EPON的码流特征。 大概应该是这…(以上转自网络)

GPON的定义

  GPON(Gigabit-Capable PON) 技术是基于ITU-TG.984.x标准的最新一代宽带无源光综合接入标准,具有高带宽,高效率,大覆盖范围,用户接口丰富等众多优点,被大多数运营商视为实现接入网业务宽带化,综合化改造的理想技术。

GPON的标准

  GPON最早由FSAN组织于2002年9月提出,ITU-T在此基础上于2003年3月完成了ITU-T G.984.1 和G.984.2的制定,2004年2 月和6月完成了G.984.3的标准化。从而最终形成了GPON的标准族。
  基于GPON技术的设备基本结构与已有的PON类似,也是由局端的 OLT(光线路终端),用户端的ONT/ONU(光网络终端或称作光网络单元 ),连接前两种设备由单模光纤(SM fiber)和无源分光器(Splitter)组成的 ODN(光分配网络)以及网管系统组成。
  对于其他的PON标准而言,GPON标准提供了前所未有的高带宽,下行速率高达 2.5Gbit/s,其非对称特性更能适应宽带数据业务市场。提供QoS的全业务保障,同时承载ATM 信元和(或)GEM帧,有很好的提供服务等级、支持QoS保证和全业务接入的能力。承载 GEM帧时,可以将TDM业务映射到GEM帧中,使用标准的 8kHz(125μs)帧能够直接支持TDM业务。作为电信级的技术标准, GPON还规定了在接入网层面上的保护机制和完整的OAM功能。
  在GPON标准中,明确规定需要支持的业务类型包括数据业务(Ethernet 业务,包括IP业务和MPEG视频流)、 PSTN业务(POTS,ISDN业务) 、专用线(T1,E1,DS3, E3和ATM业务)和视频业务( 数字视频)。GPON中的多业务映射到ATM 信元或GEM帧中进行传送,对各种业务类型都能提供相应的QoS保证。

GPON的组网方式

  目前GPON主要采用的组网方式有FTTH/O、FTTB+LAN和FTTB+DSL三种。
  1)FTTH/O为光纤到户/办公室。光纤进过分光器后直连到用户ONU,一个ONU仅供一个用户使用,带宽高,成本也高,一般针对高端用户和商业用户。
  2)FTTB+LAN为光纤到楼,然后通过大容量ONU(称为MDU)将不同业务接入多个用户,因此多个用户共享一个ONU的带宽资源,每人占用带宽较低,成本也低,一般针对中低端住宅和中低端商业用户。
  3)FTTB+ADSL为光纤到楼,然后以ADSL的方式将业务接入多个用户,也是多用户共享一个ONU,带宽、成本和客户群都与FTTB+LAN类似。

GPON的下行速率

  GPON下行最大速率为2.5Gbps,上行为1.25Gbps,分光比最大为1:64

分类: 网络产品 标签:

从Windows 2012标准版升级到数据中心版

2017年6月14日 没有评论

对于Windows 7、Windows 8操作系统,可以在图形界面中通过输入序列号,从低版本直接升级到高的版本,例如从Windows 7家庭版升级到专业版或旗舰版。而对于Windows Server 2008、Windows Server 2012来说,则可以通过dism命令实现类似的功能。
Windows Server 2012发布后,我依次将单位的服务器升级或全新安装到了Windows Server 2012标准版或企业版(为了对比不对版本的功能特意安装)。现在想将标准版升级到数据中心版,步骤如下。

进入命令提示窗口,执行dism /online /get-targeteditions,查看当前系统可以升级的版本,显示可以升级到datacenter

显示可以升级的版本
(3)执行如下命令升级:
dism /online /set-edition:ServerDatacenter /productkey:7H6M3-4N78W-RFFKJ-H9KPW-K2C2M /AcceptEula

升级到datacenter
执行命令之后,重新启动计算机。
(4)再次进入系统,执行winver可以看到,当前为数据中心版。

Ubuntu14.04找回管理员权限或root密码

2017年6月12日 没有评论

Ubuntu14.04系统中,因为误操作导致管理员密码丢失或无效,并且忘记root密码,此时无法进行任何root/sudo权限操作。可以通过GRUB重新设置root密码,并恢复管理员账户到正常状态。

启动系统,显示GRUB选择菜单(如果默认系统启动过程不显示GRUB菜单,则在系统启动时需要长按[Shift]键,显示GRUB界面),选择Advanced options for Ubuntu,按下[Enter]进入,选择recovery mode,不要按下回车键。

按下[e]键进入命令编辑状态,到 linux /boot/vmlinuz-……. ro recovery nomodeset 所在行,将“ro recovery nomodeset”替换为“quiet splash rw init=/bin/bash”,按下[F10]或者[Ctrl+x]重启系统。

此时以root身份启动一个可读写的bash,直接使用命令passwd更改root密码,然后按下[Ctrl+Alt+Delete]重启系统。

系统启动后进入字符终端[Ctrl+Alt+F<1...6>],使用root账户和密码登录系统,然后进行恢复管理账户状态操作。(图形界面终端为[Ctrl+Alt+F<7>])

分类: Linux, 解决方案 标签: , ,