使用 HAProxy 做负载均衡(转)
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 错误的解决办法
在给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地址规则及算法介绍(转)
概述
·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 用户打开句柄数限制
HKEY_LOCAL_MACHINE
– SOFTWARE
– – Microsoft
– – – Windows NT
– – – – CurrentVersion
– – – – – Windows
USERProcessHandleQuota:项设置用户句柄数量,默认值同样为2710(16进制)/10000(10进制),该值的允许范围为 200 ~ 18000 ,将其调整为更多的数值。同样地,对于具有2GB或更多物理内存的系统,不妨将用户句柄数直接设置为上限 18000(10进制);
EPON和GPON区别在哪里?
两种都是用光纤传输的形式,不过两者有个区别: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标准版升级到数据中心版
对于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密码
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>])
什么叫五类、六类、超五类和超六类网线
在我们综合网络布线时使用双绞线(网线)是必不可少的,它有很多种,以电气性能的分类是划分成三类、四类、五类、超五类、六类、超六类、七类等类型。
我们所说的双绞线没有太多的了解,什么是五类网线?什么是超五类网线?什么是六类网线?什么又是超六类网线?下面小编就带大家一起了解了解
目前在市面上三类和四类双绞线已经被淘汰,五类是不经常使用的类型,常用的类型的网线是超五类和六类网线,七类网线的价格昂贵使用并不广泛。
五类、超五类、六类、超六类网线原则上数字越大,版本越新,带宽也越高,价格也会相应会提高。
五类网线,外皮会标注“CAT5”字样,传输带宽为100MHz,用于语音传输和最高传输速率为100Mbps的数据传输,主要用于百兆网络和十兆网络,已被超五类线替代。
超五类网线,外皮标注“CAT5e”字样,传输带宽可高达1000Mb/s,但一般只应用在100Mb/s的网络中,只实现桌面交换机到计算机的连接,因为超五类非屏蔽网线要借助价格高昂的特殊设备的支持。
在传输百兆网络中,超五类非屏蔽网线比普通的五类网线传送信号时衰减更小,抗干扰能力更强。在100M网络中,用户设备的受干扰程度只有普通五类线的1/4。
六类网线外皮标注“CAT6”字样,一般指的都是非屏蔽网线,主要应用在千兆网络中,在传输性能上远远高于超五类网线标准。
超六类网线 外皮标注“CAT6e” 超六类网线也叫6A,能支持万兆上网,目前最大能达到500MHZ,是六类网线的两倍。
1、六类网线和五类网线的不同点
1)六类网线和五类网线的内部结构不同,六类网线内部结构增加了十字骨架,将双绞线的四对线缆分别置于十字骨架的四个凹槽内,解决六类传输中常见的‘串扰’问题。
2)六类网线和五类网线的铜芯大小不同,五类网线铜芯为0.45mm以下,超五类网线为0.45-0.51mm,六类网线标准的为0.56-0.58mm。
2、六类网线和超六类网线的不同点:
超六类采用齿轮状的有线槽形状可有效的改变增强信号防止信号衰减的最小化。
注意一点:十字骨架不是六类网线的唯一标准,有些六类网线是一字隔离,有些甚至没有,只要能够达到标准,通得过测试就行了。但大多数的厂商不带十架,就生产不出来符合标准的六类。
badblocks指令
badblocks指令
硬盘是一个损耗设备,当使用一段时间后可能会出现坏道等物理 故障。电脑硬盘出现坏道后,如果不及时更换或进行技术处理,坏道就会越来越多,并会造成频繁死机和数据丢失。最好的处理方式是更换磁盘,但在临时的情况 下,应及时屏蔽坏道部分的扇区,不要触动它们。badblocks就是一个检查坏道位置的工具。
一、命令参数
badblocks使用格式为:
引用
badblocks [ -svwnf ] [ -b block-size ] [ -c blocks_at_once ] [ -i
input_file ] [ -o output_file ] [ -p num_passes ] [ -t test_pattern ]
device [ last-block ] [ start-block ]
参数含义是:
引用
-b blocksize
指定磁盘的区块大小,单位为字节,默认值为“block 4K ”(4K/block)
-c blocksize
每个区块检查的次数,默认是16次
-f
强制在一个已经挂载的设备上执行读写或非破坏性的写测试操作
(我们建议先umount设备,然后再进行坏道检测。仅当/etc/mtab出现误报设备挂载错误的时候可以使用该选项)
-i file
跳过已经显示在file文件中的坏道,而不进行检测(可以避免重复检测)
-o file
把检测结果输出到file文件
-p number
重复搜寻设备,直到在指定通过次数内都没有找到新的坏块位置,默认次数为0
-s
在检查时显示进度
-t pattern
通过按指定的模式读写来检测区块。你可以指定一个0到ULONG_MAX-1的十进制正值,或使用random(随机)。
如果你指定多个模式,badblocks将使用第一个模式检测所有的区块,然后再使用下一个模式检测所有的区块。
Read-only方式仅接受一个模式,它不能接受random模式的。
-v
执行时显示详细的信息
-w
对每个区块都先写入,然后再从它读取信息
[device]
指定要检查的磁盘装置。
[last-block]
指定磁盘装置的区块总数。
[start-block]
指定要从哪个区块开始检查
二、示例
badblocks以4096的一个block,每一个block检查16次,将结果输出到“hda-badblocks-list”文件里
# badblocks -b 4096 -c 16 /dev/hda1 -o hda-badblocks-list
hda-badblocks-list”是个文本文件,内容如下:
引用
# cat hda-badblocks-list
51249
51250
51251
51253
51254
……
61245
……
可以针对可疑的区块多做几次操作。下面,badblocks以4096字节为一个“block”,每一个“block”检查1次, 将结果输出到“hda-badblocks-list.1”文件中,由第51000 block开始,到63000 block结束
# badblocks -b 4096 -c 1 /dev/hda1 -o hda-badblocks-list.1 63000 51000
这 次花费的时间比较短,硬盘在指定的情况下在很短的时间就产生“嘎嘎嘎嘎”的响声。由于检查条件的不同,其输出的结果也不完全是相同的。重复几次同样的操 作,因条件多少都有些不同,所以结果也有所不同。进行多次操作后,直到产生最后的hda-badblock-list.final文件。
三、其他
1、fsck使用badblocks的信息
badblocks只会在日志文件中标记出坏道的信息,但若希望在检测磁盘时也能跳过这些坏块不检测,可以使用fsck的-l参数:
# fsck.ext3 -l /tmp/hda-badblock-list.final /dev/hda1
2、在创建文件系统前检测坏道
badblocks可以随e2fsck和mke2fs的-c删除一起运行(对ext3文件系统也一样),在创建文件系统前就先检测坏道信息:
# mkfs.ext3 -c /dev/hda1
代码表示使用-c在创建文件系统前检查坏道的硬盘。
这 个操作已经很清楚地告知我们可以采用“mkfs.ext3 -c”选项用“read-only”方式检查硬盘。这个命令会在格式化硬盘时检查硬盘,并标出错误的硬盘“block”。用这个方法格式化硬盘,需要有相 当大的耐心,因为命令运行后,会一个个用读的方式检查硬盘。
linux scp和rsyc限速传输
linux scp和rsyc限速传输
一、scp限速1M
scp -l 1000 vps12.com.tar.gz root@192.168.1.2:/root
#此时的传输速率就是1M/8=100KB左右!经测试,如果数值在3000大约跑近4mbps。
二、rsync是(限制为 100k Bytes/s):
rsync -auvzP–bwlimit=100 本地的文件 远程的文件
参数说明:
v:详细提示
a:以archive模式操作,复制目录、符号连接,等价于 -rlptgoD 。
z:压缩
u:只进行更新,防止本地新文件被重写,注意两者机器的时钟的同时
P:是综合了–partial –progress两个参数,
所以此时的rsync支持了断点续传
机房之间传文件一般都担心带宽占用太多,特别是在共用带宽的情况下。常用的两个软件都可以限速:
scp可以加上 -l 参数:
引用
-l limit
Limits the used bandwidth, specified in Kbit/s.
rsync可以加上 –bwlimit 参数
引用
-i, –itemize-changes output a change-summary for all updates
–log-format=FORMAT output filenames using the specified format
–password-file=FILE read password from FILE
–list-only list the files instead of copying them
–bwlimit=KBPS limit I/O bandwidth; KBytes per second
–write-batch=FILE write a batched update to FILE
–only-write-batch=FILE like –write-batch but w/o updating dest