年归档:2016年

RAID 简述

 

一.RAID定义
RAID(Redundant
Array of Independent Disk
独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损

失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发

挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会
受到损坏硬盘的影响。

二、 RAID的几种工作模式(仅讨论 RAID0,RAID1,RAID5,RAID10这四种,这四种比较典型)
1、RAID0 (又称为Stripe或Striping--分条)
即Data Stripping数据分条技术。RAID 0可以把多块硬盘连成一个容量更大的硬盘群,可以提高磁 盘的性能和吞吐量。RAID 0没有冗余或错误修复能力,成本低,要求至少两个磁盘,一般只是在那些对数 据安全性要求不高的情况下才被使用。

特点:

容错性: 没有 冗余类型: 没有
热备盘选项: 没有 读性能:
随机写性能: 连续写性能:
需要的磁盘数: 只需2个或2*N个(这里应该是多于两个硬盘都可以) 可用容量: 总的磁盘的容量
典型应用: 无故...

继续阅读

发表在 storage | 标签为 | RAID 简述已关闭评论

openssl cert request

openssl req -newkey rsa:2048 -keyout name.key -out name.csr
openssl rsa -in name.key -out name.rsa

openssl pkcs12 -export -in name.crt -out name.p12 -inkey name.key
openssl pkcs12 -in name.pfx -out name.crt

 

Convert your files into PEM format

The private key: if it not in PEM format, use the following command line to convert it:
openssl rsa -in private-key-name -outform PEM

Your certificate: if it not in PEM format, use the following command line to convert it:
openssl x509 -inform PEM -in your-certificate

The certification chain: if it not in PEM format, use the following command ... 继续阅读

发表在 network | 标签为 | openssl cert request已关闭评论

C# UDP 大数据分包传输

如果需要使用UDP传输较大数据,例如传输10M的图片,这突破了UDP的设计原则。UDP的设计是基于"datagram",也就是它假设你发送的每个数据包都能包含在单一的包内。并且设定UDP数据包的最大长度受基础网络协议的限制。

点击查看原图

UDP数据包的理论最大长度限制是 65535 bytes,这包含 8 bytes 数据包头和 65527 bytes 数据。但如果基于IPv4网络传输,则还需减去 20 bytes 的IP数据包头。
则单一的UDP数据包可传输的数据最大长度为:

MaxUdpDataLength = 65535 - 8 - 20 = 65507 bytes

这就需要实现UDP包的分包传输和接收组包功能。

 

分包功能

/// <summary>
/// UDP数据包分割器
/// </summary>
public static class UdpPacketSplitter
{
  /// <summary>
  /// 分割UDP数据包
  /// </summary>
  /// <param name="sequence">UDP数据包所持有的序号</param>
  /// <param name="datagram">被分割的UDP数据包</para...

继续阅读

发表在 .net | C# UDP 大数据分包传输已关闭评论

单播、多播(组播)、广播

单播、多播和广播单播”(Unicast)、“多播”(Multicast)和“广播”(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。那么这些术语究竟是什么意思?区别何在?

1.单播:网络节点之间的通信就好像是人们之间的对话一样。如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播”,此时信息的接收和传递
只在两个节点之间进行。单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。例如,你在收发电子邮
件、浏览网页时,必须与邮件服务器、Web服务器建立连接,此时使用的就是单播数据传输方式。但是通常使用“点对点通信”(Point to
Point)代替“单播”,因为“单播”一般与“多播”和“广播”相对应使用。

2.多播:“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。因为如果采用单播方式,逐个节点
传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据,
但是显然达不到区分特定数据接收对象的目的。采用多播方式,既可以实现一次传送所有目标节点的数据,也可以达到只对特定对象传送数据的目的。
  IP网络的多播一般通过多播IP地址来实现。多播IP地址就是...
继续阅读

发表在 network | 标签为 , , | 单播、多播(组播)、广播已关闭评论

SVN 一些客户端命令选项

全局选项:

--username ARG

  指定用户名称 ARG

--password ARG

  指定密码 ARG

--no-auth-cache

  不要缓存用户认证令牌

--non-interactive

  不要交互提示

--trust-server-cert

  不提示的接受未知的证书颁发机构发行的 SSL 服务器证书(只用于选项“--non-interactive”)

--config-dir ARG

  从目录 ARG 读取用户配置文件

--config-option ARG

  以下属格式设置用户配置选项:

    FILE:SECTION:OPTION=[VALUE]

  例如:

    servers:global:http-library=serf

svn
add

  把文件以及目录的名称添加到版本控制系统。他们会在下次提交时被添加到项目仓库中去。

  svn
add path...

选项:

--auto-props

  再添加它们的时候自动设置文件的属性。

--no-auto-props

  禁用自动设置属性。

svn
blame (ann, annotate, praise)

  显示文件每行的版本以及作者信息。

  svn
blame target...

选项:

--revision,
-r rev

  如果指定的rev是单个版本,显示该版本的作者信息。如果指定的版本范围re...

继续阅读

发表在 technologys | SVN 一些客户端命令选项已关闭评论

一张服务架构图

一张网络摘取的服务架构图

点击查看原图

继续阅读

发表在 article | 一张服务架构图已关闭评论

IP - A、B、C、D、E - 网段 - 网络

IP地址分为A,B,C,D,E五类。

网络号:用于识别主机所在的网络;

主机号:用于识别该网络中的主机。

其中A类分配给政府机关使用,B类地址给大中型企业使用,C类地址给个人使用。这三种是主要的。

IP地址分为五类,A类保留给政府机构,B类分配给中等规模的公司,C类分配给任何需要的人,D类用于组播,E类用于实验,各类可容纳的地址数目不同。

其中A类、B类、和C类这三类地址用于TCP/IP节点,其它两类D类和E类被用于特殊用途。

A、B、C三类IP地址的特征:当将IP地址写成二进制形式时,

A类:0打头

B类:10打头
C类:110打头
D类:1110打头
E类:11110打头
A、B、C、D、E三类IP地址的特征:当将IP地址写成十进制形式时:
A类:1.0.0.1—126.155.255.254
B类:128.0.0.1—191.255.255.254
C类:192.0.0.1—223.255.255.254
D类:224.0.0.1—239.255.255.254
E类:240.0.0.1—255.255.255.254

 

1. A类地址
⑴ A类地址第1字节为网络地址,其它3个字节为主机地址。
⑵ A类地址范围:1.0.0.1—126.155.255.254
⑶ A类地址中的私有地址和保留地址:
10.X.X.X是私有地址(所谓的私有地址就是在互联网上不使用,而被用在局域网络中的地址)。
...

继续阅读

发表在 network | 标签为 , , | IP - A、B、C、D、E - 网段 - 网络已关闭评论

C# UDP组播

//组播代码

using System;

using System.Collections.Generic;

using System.Linq;using System.Text;

using System.Net;using System.Net.Sockets;

using System.Threading;

namespaceTest {

classProgram     {
        staticvoidMain(string[] args)
        {
            UdpClient client = new UdpClient(5566);
            client.JoinMulticastGroup(IPAddress.Parse("234.5.6.7"));
            IPEndPoint multicast = new IPEndPoint(IPAddress.Parse("234.5.6.7"), 7788);
            byte[] buf = Encoding.Default.GetBytes("Hello from multicast");
            Thread t = new Thread(new ThreadStart(RecvThread));
   ...

继续阅读

发表在 network | 标签为 , | C# UDP组播已关闭评论

php date

a - "am" 或是 "pm" 
A - "AM" 或是 "PM" 
d - 几日,二位数字,若不足二位则前面补零; 如: "01" 至 "31" 
D - 星期几,三个英文字母; 如: "Fri" 
F - 月份,英文全名; 如: "January" 
h - 12 小时制的小时; 如: "01" 至 "12" 
H - 24 小时制的小时; 如: "00" 至 "23" 
g - 12 小时制的小时,不足二位不补零; 如: "1" 至 12" 
G - 24 小时制的小时,不足二位不补零; 如: "0" 至 "23... 继续阅读

发表在 php | php date已关闭评论

document width/height

网页可见区域宽: document.body.clientWidth;
网页可见区域高: document.body.clientHeight;
网页可见区域宽:
document.body.offsetWidth    (包括边线的宽);
网页可见区域高:
document.body.offsetHeight   (包括边线的宽);
网页正文全文宽: document.body.scrollWidth;
网页正文全文高: document.body.scrollHeight;
网页被卷去的高: document.body.scrollTop;
网页被卷去的左: document.body.scrollLeft;
网页正文部分上: window.screenTop;
网页正文部分左: window.screenLeft;
屏幕分辨率的高: window.screen.height;
屏幕分辨率的宽: window.screen.width;
屏幕可用工作区高度: window.screen.availHeight;
屏幕可用工作区宽度:window.screen.availWidth;

scrollHeight: 获取对象的滚动高度。  
scrollLeft:设置或获取位于对象左边界和窗口中目前可见内容的最左端...

继续阅读

发表在 javascript | document width/height已关闭评论

常用加密算法

算法选择:对称加密AES,非对称加密: ECC,消息摘要: MD5,数字签名:DSA


对称加密算法(加解密密钥相同)
名称
密钥长度
运算速度
安全性
资源消耗
DES
56位
较快
3DES
112位或168位
AES
128、192、256位


非对称算法(加密密钥和解密密钥不同)
名称
成熟度
安全性(取决于密钥长度)
运算速度
资源消耗
RSA
DSA
只能用于数字签名
ECC
低(计算量小,存储空间占用小,带宽要求低)


散列算法比较
名称
安全性
速度
SHA-1
MD5


对称与非对称算法比较
名称
密钥管理
安全性
速度
对称算法
比较难,不适合互联网,一般用于内部系统
快好几个数量级(软件加解密速度至少快100倍,每秒可以加解密数M比特数据),适合大数据量的加解密处理
非对称算法
密钥容易管理
慢,适合小数据量加解密或数据签名


算法选择(从性能和安全性综合)
对称加密: AES(128位),
非对称加密: ECC(160位)或RSA(1024),
消息摘要: MD5
数字签名:DSA
轻量级:TEA、RC系列(RC4),Blowfish (不常换密钥)
速度排名(个人估测,未验证):IDEA <DES <GASTI28<GOST<AES<RC4<TEA<Blowfish  

简单的加密设计: 用密钥对原文做  异或,置换,代换,移...

继续阅读

发表在 technologys | 常用加密算法已关闭评论

linux l2tp

 

yum install openswan xl2tpd ppp

 

/etc/ipsec.conf

 

config setup
        protostack=netkey
        dumpdir=/var/run/pluto/
        virtual_private=%v4:10.0.0.0/8,%v4:192.168.0.0/16,%v4:172.16.0.0/12,%v4:25.0.0.0/8,%v4:100.64.0.0/10,%v6:fd00::/8,%v6:fe80::/10
        nat_traversal=yes
        oe=off

 

/etc/ipsec.d/l2tp-psk.conf

conn L2TP-PSK-NAT
    rightsubnet=vhost:%priv
  &n...

继续阅读

发表在 network | linux l2tp已关闭评论

lucene

lucene3.0中BooleanQuery 实现与或的复合搜索 .
BooleanClause用于表示布尔查询子句关系的类,


括:

BooleanClause.Occur.MUST,

BooleanClause.Occur.MUST_NOT,

BooleanClause.Occur.SHOULD。

 

必须包含,不能包含,可以包含三种.有以下6种组合: 
 
1.MUST和MUST:取得连个查询子句的交集。 
2.MUST和MUST_NOT:表示查询结果中不能包含MUST_NOT所对应得查询子句的检索结果。 
3.SHOULD与MUST_NOT:连用时,功能同MUST和MUST_NOT。
4.SHOULD与MUST连用时,结果为MUST子句的检索结果,但是SHOULD可影响排序。
5.SHOULD与SHOULD:表示“或”关系,最终检索结果为所有检索子句的并集。
6.MUST_NOT和MUST_NOT:无意义,检索无结果。

...

构造出“与”的关系: bquery.Add(query, BooleanClause.Occur.MUST);

构造“或”关系:bquery.Add(query, BooleanClause.Occur.SHOULD);

构造“非”关系:bquery.Add(query, ...

继续阅读

发表在 search | lucene已关闭评论

Zookeeper的核心:ZAB原子消息广播协议

 点击查看原图
        ZooKeeper为高可用的一致性协调框架,自然的ZooKeeper也有着一致性算法的实现,ZooKeeper使用的是ZAB协议作为数据一致性的算法,
ZAB(ZooKeeper Atomic Broadcast )
称为:原子消息广播协议;ZAB可以说是在Paxos算法基础上进行了扩展改造而来的,ZAB协议设计了支持崩溃恢复,ZooKeeper使用单一主进程
Leader用于处理客户端所有事务请求,采用ZAB协议将服务器数状态以事务形式广播到所有Follower上;由于事务间可能存在着依赖关系,ZAB
协议保证Leader广播的变更序列被顺序的处理,:一个状态被处理那么它所依赖的状态也已经提前被处理;ZAB协议支持的崩溃恢复可以保证在
Leader进程崩溃的时候可以重新选出Leader并且保证数据的完整性;

  在ZooKeeper中
所有的事务请求都由一个主服务器也就是Leader来处理,其他服务器为Follower,Leader将客户端的事务请求转换为事务Proposal,
并且将Proposal分发给集群中其他所有的Follower,然后Leader等待Follwer反馈,当有
过半数(>=N/2+1)的Follower反馈信息后,Leader将再次向集群内F... 继续阅读

发表在 technologys | Zookeeper的核心:ZAB原子消息广播协议已关闭评论

TcpTimedWaitDelay/MaxUserPort

当TCP连接被关闭时,{ Protocol, Local IP, Local Port, Remote IP, Remote Port}五元组就进入TIME_WAIT状态,默认时间是4分钟。可以通过一组命令看看tcp的连接状态:

netstat -ano>>c:\port.txt

本地ip,远程ip,远程端口都是固定的,只有本地端口是变化的,本地端口只能使用1024-5000,因此如果在4分钟内发起了大约4000个连接,这时就会发生异常,下面是使用WCF,客户端的异常:

System.Net.Sockets.SocketException: Only one usage of each socket
address (protocol/network address/port) is normally permitted
192.168.101.5:8888
at System.Net.Sockets.Socket.DoConnect(EndPoint endPointSnapshot, SocketAddress socketAddress)
at System.Net.Sockets.Socket.Connect(EndPoint remoteEP)
at System.ServiceModel.Channels.SocketConnectio...

继续阅读

发表在 network | TcpTimedWaitDelay/MaxUserPort已关闭评论