I needed to run LSI MegaRaid Storage Manager (vivaldiframework) for my LSI 9260-8i SAS card in my Ubuntu Desktop. Ubuntu is based on Debian so this may also work to get LSI MegaRaid Storage Manager on Debian as well, but I have not yet tried it yet. It took some work but I go it to install so I thought I would tell you how I did it. It is assumed that in the following, when editing a file you are doing it with superuser rights such as opening the files from the comand prompt with "sudo nano /path/to/file/file" or "sudo vi /path/to/file/file"

I found that you need to have a GUI installed (though the install can be done completely by ssh.

root account:

If the root account has not been enabled, it will need to be enabled and have a pasword set

sudo passwd root

sudo passwd -u root

Install prerequisites:

sudo apt-get install alien libstdc++5  rcconf

You also need to install at least Java 7, I am using Java8. I followed the procedure found at: http://www.ubuntugeek.com/how-to-install-oracle-java-7-in-ubuntu-12-04.html and just changed java7 in the command line to java8

 

You need to download the Linux  build from LSI (http://www.lsi.com/support/pages/download-results.aspx?component=Storage+Component&productfamily=RAID+Controllers&productcode=P00066&assettype=Management+Software+and+Tools&productname=MegaRAID+SAS+9260-8i). I initially tried the latest but had some problems with it. It could very well have been a fluk but I just went back to the 13.11.01.00 version that worked just fine.

mkdir ~/LSI

cp 13.11.01.00_Linux_x64_MSM.gz ~/LSI/

cd ~/LSI/

tar xzvf 13.11.01.00_Linux_x64_MSM.gz

cd disk

sudo alien --scripts *.rpm

install deb packages

sudo dpkg --install lib-utils2_1.00-6_all.deb

sudo dpkg --install megaraid-storage-manager_13.11.01-1_all.deb

edit /etc/init.d/vivaldiframeworkd and replace the line

for ((i=0, i < 20, i++))

with

for i in `seq 0 19`

edit "/usr/local/MegaRAID Storage Manager/Framework/startupui.sh" and replace

LD_LIBRARY_PATH=`pwd`:/opt/lsi/Apache:/opt/lsi/Pegasus:/opt/lsi/openssl;export LD_LIBRARY_PATH

with

LD_LIBRARY_PATH=`pwd`:/opt/lsi/Pegasus:/usr/sbin/openssl;export LD_LIBRARY_PATH

configure the service to start automatically:

sudo rcconf

arrow down to the vivaldiframeworkd, if it does not have an "*" in it , hit the space bar to select it, then hit enter or tab to OK

 

Restart the vivaldiframeworkd service:

sudo /etc/init.d/vivaldiframeworkd restart

if you want to use the Graphical desktop installed on you box you can access the GUI with

cd "/usr/local/MegaRAID Storage Manager"

./startupui.sh

 

最近入了一台独立服务器,如果直接拿来跑项目的话就太浪费资源了。于是打算使用Proxmox VE这款虚拟化管理软件进行VPS管理。

Proxmox VE是一款套开源的虚拟化管理软件,用户可通过网页的方式来管理服务器上使用 kvm 以及 lxc 技术运行的虚拟机。同时提供了一些先进功能的支持,如集群、HA等。

0x00 安装

Proxmox VE是基于Debian进行开发的,主要有两种安装方式。
其一是通过官方提供的iso作为一个全新的系统安装
另一种方式是在已有的Debian系统上安装
手动安装时请务必保证网卡配置正确,若出错的话在不带IPMI的机子上很难处理。

安装完成后即可通过https://ip:8006/访问管理页面

另外,这里记录一下版本升级的方法。由于Proxmox VE是一家商业公司在运营,所以一些功能是需要购买订阅才能使用的,例如说版本更新功能。但是可以通过一些方法绕过限制。注意这些更新方法请勿用于生产环境中。

将软件源更改为测试源

修改/etc/apt/sources.list.d/pve-install-repo.list, 将 pve-no-subscription 修改为pvetest
然后apt三连即可更新为新版本。

apt-get update
apt-get upgrade
apt-get dist-upgrade

0x01 相关设定

对于kvm虚拟化的虚拟机,若想上传需要用到的iso文件,可以直接通过网页端上传,也可以直接将文件放入/var/lib/vz/template/iso/
如果想对kvm虚拟机的启动参数进行调整,官方提供了api:qm set,具体可参照官方文档
对于lxc虚拟化的虚拟机,可以直接从系统中下载对应发行版的模板,无需自行下载。
可以直接使用LXC自带的api对lxc虚拟机进行管理,注意-n为虚拟机的id。

0x02 网络配置

对于多ip的服务器,本身官方就是按照桥接的方式做好网络配置的,直接在虚拟机中填写分配的ip即可。
对于单ip服务器,可以采用NAT的方法让虚拟机连上外部网络。这里介绍俩种方式。

采用QEMU自带的NAT

对于KVM虚拟机,可以直接在创建虚拟机的时候勾上NAT,这时候就会自动为虚拟机分配一个虚拟的子网并且虚拟机可以通过nat连接到外部网络,基本上是开箱即用。同时也支持端口映射,具体可参考官方wiki下的QEMU port redirection。但之前在使用的过程中,发现这个端口映射并不是很稳定。同时虽然这种方法很简单,但是虚拟机之间是隔离的,无法互通数据,这样就非常不灵活。
同时,LXC虚拟机是没有这种开箱即用的NAT的。

配置iptables创建子网以实现nat

主要思路是创建一个虚拟桥接设备并创建一个子网,然后将所有虚拟机包括宿主机都连接到这个子网内,再开启iptables的NAT功能。
编辑配置文件/etc/interfaces,以下是参考配置

auto vmbr2
iface vmbr2 inet static
    address 10.0.0.254
    netmask 255.255.255.0
    bridge_ports none
    bridge_stp off
    bridge_fd 0
    post-up echo 1 > /proc/sys/net/ipv4/ip_forward
    post-up iptables -t nat -A POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE
    post-down iptables -t nat -D POSTROUTING -s '10.0.0.0/24' -o vmbr0 -j MASQUERADE

以上配置创建了vmbr2并且分配了一个子网10.0.0.0/24,同时宿主机(同时亦为网关)在这个子网内的ip为10.0.0.254。然后开启了内核的转发功能与iptables的NAT功能(其中vmbr0为通向外部网络的设备)。
若想添加端口转发直接在iptables中增加相关条目即可。
例如想要将宿主机vmbr0的80端口的tcp连接转发到10.0.0.102的80端口上:
iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.0.102:80
如果想保存转发规则,使之重启后依然有效,则需要在/etc/interfaces相应位置加入

post-up iptables -t nat -A PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.0.102:80
post-down iptables -t nat -D PREROUTING -i vmbr0 -p tcp --dport 80 -j DNAT --to 10.0.0.102:80

通过以上方法就能组建一个灵活的子网了,kvm虚拟机和lxc虚拟机都可接入,并且都可以有端口转发。由于没有DHCP服务器所以要自行分配ip。注意创建虚拟机的时候将其挂载到vmbr2端口下。
我的服务器只有一个ip,所以内部组网就只能采取这种这种的方法了hhhh。为了充分利用资源,我将80,443端口转发到内部一台虚拟机上,这台虚拟机再使用nginx反代到内网的其它虚拟机,以充分利用单个ip。

启用BBR优化网络

目前的Proxmox VE版本的linux内核版本比较新,已经包含了bbr模块了。

修改sysctl.conf

echo "net.core.default_qdisc=fq" >> /etc/sysctl.conf
echo "net.ipv4.tcp_congestion_control=bbr" >> /etc/sysctl.conf

保存生效

sysctl -p

检测是否已启用bbr模块

lsmod | grep bbr

如果含有bbr即说明内核内已启用bbr模块

实测有效方法:压缩你的镜像

方法:试着用命令或工具压缩你的镜像。

docker 自带的一些命令还能协助压缩镜像,比如 export 和 import

$ docker run -d redis:lab-3
$ docker export 71b1c0ad0a2b | docker import - redis:lab-4

但麻烦的是需要先将容器运行起来,而且这个过程中你会丢失镜像原有的一些信息,比如:导出端口,环境变量,默认指令。

 

20161027203227

介绍

前段时间网易蜂巢曾经推出蜂巢 Logo T恤,用的正是 Docker 镜像制作,最神奇的是,它最终的镜像大小只有 585字节。

$ docker images | grep hub.c.163.com/public/logo

REPOSITORY                          TAG     IMAGE ID           CREATED      SIZE

hub.c.163.com/public/logo  latest  6fbdd13cd204  11 days ago  585 B

这其中就用到了不少精简镜像的技术,尤其是针对 C 程序的优化和精简。但我们平常开发肯定不止用 C 语言,甚至有些镜像都不是我们自己来打包的(比如下载公共镜像),那是否有一些通用的精简 Docker 镜像的手段呢? 答案是肯定的 ,甚至有的镜像可以精简 98%。精简镜像大小的好处不言而喻,既节省了存储空间,又能节省带宽,加快传输。那好,接下来就请跟随我来学习怎么一步步精简 Docker 镜像吧。

镜像层(Layers)

在开始制作镜像之前,首先了解下镜像的原理,而这其中最重要的概念就是镜像层(Layers)。镜像层依赖于一系列的底层技术,比如文件系统(filesystems)、写时复制(copy-on-write)、联合挂载(union mounts)等,幸运的是你可以在很多地方学习到这些技术,这里就不再赘述技术细节。

 

20161027203243

 

总的来说,你最需要记住这点:

在 Dockerfile 中, 每一条指令都会创建一个镜像层,继而会增加整体镜像的大小。

举例来说:

FROM busybox

RUN mkdir /tmp/foo

RUN dd if=/dev/zero of=/tmp/foo/bar bs=1048576 count=100

RUN rm /tmp/foo/bar

以上 Dockerfile 干了这几件事:

  • 基于一个官方的基础镜像 busybox(只有1M多)
  • 创建一个文件夹(/tmp/foo)和一个文件(bar)
  • 为该文件分配了100M大小
  • 再把这个大文件删除

事实上,它最终什么也没做,我们把它构建成镜像看看(构建可以参考一期):

docker build -t busybox:test .

再让我们来对比下原生的 busybox 镜像大小和我们生成的镜像大小:

$ docker images | grep

busyboxbusybox    test     896c63dbdb96    2 seconds ago    106 MB

busybox    latest   2b8fd9751c4c    9 weeks ago      1.093 MB

出乎意料的是,却生成了 106 MB 的镜像。

多出了 100 M,这是为何?这点和 git 类似(都用到了Copy-On-Write技术),我用 git 做了如下两次提交(添加了又删除),请问 A_VERY_LARGE_FILE 还在 git 仓库中吗?

$ git add  A_VERY_LARGE_FILE

$ git commit

$ git rm  A_VERY_LARGE_FILE

$ git commit

答案是: 在的 ,并且会占用仓库的大小。Git 会保存每一次提交的文件版本,而 Dockerfile 中每一条指令都可能增加整体镜像的大小,即使它最终什么事情都没做。

精简步骤

了解了镜像层知识,有助于我们接下来制作精简镜像。这里开始,以最常用的开源缓存软件 Redis 为例,从一步步试验,来介绍如何制作更精简的 Docker 镜像

步骤 1:初始化构建 Redis 镜像

直接上 Dockerfile :

FROM ubuntu:trusty

ENV VER     3.0.0

ENV TARBALL http://download.redis.io/releases/redis-$VER.tar.gz

# ==> Install curl and helper tools...

RUN apt-get update

RUN apt-get install -y  curl make gcc

# ==> Download, compile, and install...

RUN curl -L $TARBALL | tar zxv

WORKDIR  redis-$VER

RUN make

RUN make install

#...

# ==> Clean up...

WORKDIR /

RUN apt-get remove -y --auto-remove curl make gcc

RUN apt-get clean

RUN rm -rf /var/lib/apt/lists/*  /redis-$VER

#...

CMD ["redis-server"]

结合注释,读起来并不困难,用到的都是常规的几个命令,简要介绍如下:

  • FROM:顶头写,指定一个基础镜像,此处基于 ubuntu:trusty
  • ENV:设置环境变量,这里设置了 VER 和 TARBALL 两个环境变量
  • RUN:最常用的 Dockerfile 指令,用于运行各种命令,这里调用了 8 次 RUN 指令
  • WORKDIR:指定工作目录,相当于指令 cd
  • CMD:指定镜像默认执行的命令,此处默认执行 redis-server 命令来启动 redis

执行构建:

$ docker build  -t redis:lab-1  .

注:国内网络,更新下载可能会较慢

查看大小:

 

20161027203303

 

动辄就有 300多 M 的大小,不能忍,下面我们开始一步步优化。

步骤 2: 优化基础镜像

方法:选用更小的基础镜像。

常用的 Linux 系统镜像一般有 ubuntu、centos、debian,其中debian 更轻量,而且够用,对比如下:

REPOSITORY     TAG        IMAGE ID           VIRTUAL SIZE

---------------           ------          ------------                ------------

centos              7               214a4932132a     215.7 MB

centos              6               f6808a3e4d9e      202.6 MB

ubuntu              trusty       d0955f21bf24      188.3 MB

ubuntu              precise    9c5e4be642b7     131.9 MB

debian              jessie       65688f7c61c4      122.8 MB

debian              wheezy    1265e16d0c28      84.96 MB

替换 debian:jessie 作为我们的基础镜像。

优化 Dockerfile:

FROM debian:jessie

#...

执行构建:

$ docker build  -t redis:lab-2  .

查看大小:

 

20161027203254

 

减少了42M,稍有成效,但并不明显。细心的同学应该发现,只有 122 MB 的 debian 基础镜像,构建后增加到了 305 MB,看来这里面肯定有优化的空间,如何优化就要用到我们开头说到的 Image Layer 知识了。

步骤 3:串联 Dockerfile 指令

方法: 串联你的 Dockerfile 指令(一般是 RUN 指令)。

Dockerfile 中的 RUN 指令通过 && 和 / 支持将命令串联在一起,有时能达到意想不到的精简效果。

优化 Dockerfile:

FROM debian:jessie

ENV VER     3.0.0

ENV TARBALL http://download.redis.io/releases/redis-$VER.tar.gz




RUN echo "==> Install curl and helper tools..."  && \     apt-get update                      && \   

  apt-get install -y  curl make gcc   && \  

  \   

  echo "==> Download, compile, and install..."  && \  

  curl -L $TARBALL | tar zxv  && \   

  cd redis-$VER               && \   

  make                        && \   

  make install                && \   

  ...   

  echo "==> Clean up..."  && \   

  apt-get remove -y --auto-remove curl make gcc  && \

  apt-get clean                                  && \   

  rm -rf /var/lib/apt/lists/*  /redis-$VER




#...

CMD ["redis-server"]

构建:

$ docker build  -t redis:lab-3  .

查看大小:

 

20161027203318

 

哇!一下子减少了 50%,效果明显啊!这是最常用的一个精简手段了。

步骤 4:压缩你的镜像

方法:试着用命令或工具压缩你的镜像。

docker 自带的一些命令还能协助压缩镜像,比如 export 和 import

$ docker run -d redis:lab-3

$ docker export 71b1c0ad0a2b | docker import - redis:lab-4

但麻烦的是需要先将容器运行起来,而且这个过程中你会丢失镜像原有的一些信息,比如:导出端口,环境变量,默认指令。

所以一般通过命令行来精简镜像都是实验性的,那么这里再推荐一个小工具: docker-squash。用起来更简单方便,并且不会丢失原有镜像的自带信息。

下载安装:

https://github.com/jwilder/docker-squash#installation(复制此链接到浏览器打开)

压缩操作:

$ docker save redis:lab-3 \ 

  | sudo docker-squash -verbose -t redis:lab-4  \ 

  | docker load

注: 该工具在 Mac 下并不好使,请在 Linux 下使用

对比大小:

 

20161027203328

 

好吧,从这里看起来并没有太大作用,所以我只能说试着,而不要报太大期望。

总结

本期我们介绍了镜像层的知识,并且通过实验,介绍三种如何精简镜像的技巧(下期还有更强大的技巧)。这里主要介绍了三种精简方法:选用更精小的镜像,串联 Dockerfile 运行指令,以及试着压缩你的镜像。通过这几个技巧,已经可以将 300M 大小的镜像压缩到 150M,压缩率50%,效果还是不错。但这还远远不够,下篇我们将介绍一些终极手段,压缩效果可以达到 98%哦!

最近对Web App开发开始深入,老总做了个类似于Phonegap的中间件,整体上web app有了个初始的框架雏形,现在又有需求自动生成apk,将开发人员从打包工作中解脱出来(你可以想象同一个软件,只改一个去往网页的地址和apk包名,要打上百个包有多累),所以就学习Rexsee这个开源项目的一点形式,通过网站提交html页面,修改一些基本数据,自动生成apk,达到批量化的目的。所以先开始学习ant….

一,准备ant, 搭ant环境,这个没得所,谷大师会告诉你…

二,配置Android SDK环境,将tools 和platform-tools 都配置到环境变量Path中…

  三,创建一个android项目 
参数说明:
-k /--package 为命名空间(包名)-a /--name 工程名
-p /--path 项目              -t 为目标平台的版本编号(由下面步骤1列出的)

1)、列出你SDK中已有的平台版本,执行命令“ android.bat list targets”

2)、create一个Android工程,执行命令“android create project -k com.vatata.atest.ant  -a AntAndroidTest1  -p c:\test\AntAndroidTest1 -t 2”

这样工程创建完后,ant的build.xml 就自动生成了…

3) 执行“ant debug” ,这样就会编译生成apk…

四)Apk 安装

通过第三部生成的apk会出现在c:\test\AntAndroidTest1中的bin目录下,现在就可以安装了

1)--> adb device

2) -->

adb –s SH17JV805161 install c:\test\AntAndroidTest1\ bin\AntAndroidTest3-debug.apk

就行了

 

然后apk就安装到手机上,可以测试了…

 

 

那么再回到我之前的问题,一个apk 只要修改一个链接和包名,那么我们可以通过写文件的形式,修改某个字段和Manifest中的packagename,那么重新执行ant debug,这个apk又重新生成了,就是个全新的apk了,很爽吧…

Hbase hbck

[plain] view plain copy

在CODE上查看代码片派生到我的代码片

  1. 新版本的 hbck 可以修复各种错误,修复选项是:
  2. (1)-fix,向下兼容用,被-fixAssignments替代
  3. (2)-fixAssignments,用于修复region assignments错误
  4. (3)-fixMeta,用于修复meta表的问题,前提是HDFS上面的region info信息有并且正确。
  5. (4)-fixHdfsHoles,修复region holes(空洞,某个区间没有region)问题
  6. (5)-fixHdfsOrphans,修复Orphan region(hdfs上面没有.regioninfo的region)
  7. (6)-fixHdfsOverlaps,修复region overlaps(区间重叠)问题
  8. (7)-fixVersionFile,修复缺失hbase.version文件的问题
  9. (8)-maxMerge <n> (n默认是5),当region有重叠是,需要合并region,一次合并的region数最大不超过这个值。
  10. (9)-sidelineBigOverlaps ,当修复region overlaps问题时,允许跟其他region重叠次数最多的一些region不参与(修复后,可以把没有参与的数据通过bulk load加载到相应的region)
  11. (10)-maxOverlapsToSideline <n> (n默认是2),当修复region overlaps问题时,一组里最多允许多少个region不参与
  12. 由于选项较多,所以有两个简写的选项
  13. (11) -repair,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps
  14. (12)-repairHoles,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans
  15. 新版本的 hbck
  16. (1)缺失hbase.version文件
  17.  加上选项 -fixVersionFile 解决
  18. (2)如果一个region即不在META表中,又不在hdfs上面,但是在regionserver的online region集合中
  19.  加上选项 -fixAssignments 解决
  20. (3)如果一个region在META表中,并且在regionserver的online region集合中,但是在hdfs上面没有
  21.  加上选项 -fixAssignments -fixMeta 解决,( -fixAssignments告诉regionserver close region),( -fixMeta删除META表中region的记录)
  22. (4)如果一个region在META表中没有记录,没有被regionserver服务,但是在hdfs上面有
  23. 加上选项 -fixMeta -fixAssignments 解决,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的记录)
  24. (5)如果一个region在META表中没有记录,在hdfs上面有,被regionserver服务了
  25. 加上选项 -fixMeta 解决,在META表中添加这个region的记录,先undeploy region,后assign
  26. (6)如果一个region在META表中有记录,但是在hdfs上面没有,并且没有被regionserver服务
  27. 加上选项 -fixMeta 解决,删除META表中的记录
  28. (7)如果一个region在META表中有记录,在hdfs上面也有,table不是disabled的,但是这个region没有被服务
  29. 加上选项 -fixAssignments 解决,assign这个region
  30. (8)如果一个region在META表中有记录,在hdfs上面也有,table是disabled的,但是这个region被某个regionserver服务了
  31. 加上选项 -fixAssignments 解决,undeploy这个region
  32. (9)如果一个region在META表中有记录,在hdfs上面也有,table不是disabled的,但是这个region被多个regionserver服务了
  33. 加上选项 -fixAssignments 解决,通知所有regionserver close region,然后assign region
  34. (10)如果一个region在META表中,在hdfs上面也有,也应该被服务,但是META表中记录的regionserver和实际所在的regionserver不相符
  35. 加上选项 -fixAssignments 解决
  36. (11)region holes
  37. 需要加上 -fixHdfsHoles ,创建一个新的空region,填补空洞,但是不assign 这个 region,也不在META表中添加这个region的相关信息
  38. (12)region在hdfs上面没有.regioninfo文件
  39. -fixHdfsOrphans 解决
  40. (13)region overlaps
  41. 需要加上 -fixHdfsOverlaps
  42. 说明:
  43. (1)修复region holes时,-fixHdfsHoles 选项只是创建了一个新的空region,填补上了这个区间,还需要加上-fixAssignments -fixMeta 来解决问题,( -fixAssignments 用于assign region),( -fixMeta用于在META表中添加region的记录),所以有了组合拳 -repairHoles 修复region holes,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans
  44. (2) -fixAssignments,用于修复region没有assign、不应该assign、assign了多次的问题
  45. (3)-fixMeta,如果hdfs上面没有,那么从META表中删除相应的记录,如果hdfs上面有,在META表中添加上相应的记录信息
  46. (4)-repair 打开所有的修复选项,相当于-fixAssignments -fixMeta -fixHdfsHoles -fixHdfsOrphans -fixHdfsOverlaps -fixVersionFile -sidelineBigOverlaps
  47. 新版本的hbck从(1)hdfs目录(2)META(3)RegionServer这三处获得region的Table和Region的相关信息,根据这些信息判断并repair

示例:

[plain] view plain copy

在CODE上查看代码片派生到我的代码片

  1. 查看hbasemeta情况
  2. hbase hbck
  3. 1.重新修复hbase meta表(根据hdfs上的regioninfo文件,生成meta表)
  4. hbase hbck -fixMeta
  5. 2.重新将hbase meta表分给regionserver(根据meta表,将meta表上的region分给regionservere)
  6. hbase hbck -fixAssignments

默认的版本太低了,手动安装有一些麻烦,想采用Yum安装的可以使用下面的方案:

1.检查当前安装的PHP包
yum list installed | grep php
如果有安装的PHP包,先删除他们
 yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64
2.Centos 5.X
  rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
CentOs 6.x
rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
如果想删除上面安装的包,重新安装
rpm -qa | grep webstatic
rpm -e  上面搜索到的包即可

3.运行yum install

  yum install php55w.x86_64 php55w-cli.x86_64 php55w-common.x86_64 php55w-gd.x86_64 php55w-ldap.x86_64 php55w-mbstring.x86_64 php55w-mcrypt.x86_64 php55w-mysql.x86_64 php55w-pdo.x86_64

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

注:如果想升级到5.6把上面的55w换成56w就可以了。

yum install php70w.x86_64 php70w-cli.x86_64 php70w-common.x86_64 php70w-gd.x86_64 php70w-ldap.x86_64 php70w-mbstring.x86_64 php70w-mcrypt.x86_64 php70w-mysql.x86_64 php70w-pdo.x86_64
4.安装PHP FPM

yum install php55w-fpm
yum install php56w-fpm
yum install php70w-fpm
注:如果想升级到5.6把上面的55w换成56w就可以了。

http://www.centoscn.com/CentosServer/test/2014/1120/4153.html

OpenVPN是一个用于创建虚拟专用网络(Virtual Private Network)加密通道的免费开源软件。使用OpenVPN可以方便地在家庭、办公场所、住宿酒店等不同网络访问场所之间搭建类似于局域网的专用网络通道。

使用OpenVPN配合特定的代理服务器,可用于访问Youtube、FaceBook、Twitter等受限网站,也可用于突破公司的网络限制。

一、服务器端安装及配置

服务器环境:干净的CentOS6.3 64位系统

内网IP:10.143.80.116

外网IP:203.195.xxx.xxx

OpenVPN版本:OpenVPN 2.3.2 x86_64-redhat-linux-gnu

    1、安装前准备

# 关闭selinux
setenforce 0
sed -i '/^SELINUX=/c\SELINUX=disabled' /etc/selinux/config
# 安装openssl和lzo,lzo用于压缩通讯数据加快传输速度
yum -y install openssl openssl-devel
yum -y install lzo
# 安装epel源
rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
sed -i 's/^mirrorlist=https/mirrorlist=http/' /etc/yum.repos.d/epel.repo

    2、安装及配置OpenVPN和easy-rsa

# 安装openvpn和easy-rsa
yum -y install openvpn easy-rsa
# 修改vars文件
cd /usr/share/easy-rsa/2.0/
vim vars
# 修改注册信息,比如公司地址、公司名称、部门名称等。
export KEY_COUNTRY="CN"
export KEY_PROVINCE="Shandong"
export KEY_CITY="Qingdao"
export KEY_ORG="MyOrganization"
export KEY_EMAIL="me@myhost.mydomain"
export KEY_OU="MyOrganizationalUnit"
# 初始化环境变量
source vars
# 清除keys目录下所有与证书相关的文件
# 下面步骤生成的证书和密钥都在/usr/share/easy-rsa/2.0/keys目录里
./clean-all
# 生成根证书ca.crt和根密钥ca.key(一路按回车即可)
./build-ca
# 为服务端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key-server server
# 每一个登陆的VPN客户端需要有一个证书,每个证书在同一时刻只能供一个客户端连接,下面建立2份
# 为客户端生成证书和密钥(一路按回车,直到提示需要输入y/n时,输入y再按回车,一共两次)
./build-key client1
./build-key client2
# 创建迪菲·赫尔曼密钥,会生成dh2048.pem文件(生成过程比较慢,在此期间不要去中断它)
./build-dh
# 生成ta.key文件(防DDos攻击、UDP淹没等恶意攻击)
openvpn --genkey --secret keys/ta.key

查看keys目录下生成的文件:

wKioL1RhllmyOZW9AAKmWJ5x4tg383.jpg

    3、创建服务器端配置文件

# 在openvpn的配置目录下新建一个keys目录
mkdir /etc/openvpn/keys
# 将需要用到的openvpn证书和密钥复制一份到刚创建好的keys目录中
cp /usr/share/easy-rsa/2.0/keys/{ca.crt,server.{crt,key},dh2048.pem,ta.key} /etc/openvpn/keys/
# 复制一份服务器端配置文件模板server.conf到/etc/openvpn/
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/server.conf /etc/openvpn/
# 查看server.conf里的配置参数
grep '^[^#;]' /etc/openvpn/server.conf
# 编辑server.conf
vim /etc/openvpn/server.conf
port 1194
# 改成tcp,默认使用udp,如果使用HTTP Proxy,必须使用tcp协议
proto tcp
dev tun
# 路径前面加keys,全路径为/etc/openvpn/keys/ca.crt
ca keys/ca.crt
cert keys/server.crt
key keys/server.key  # This file should be kept secret
dh keys/dh2048.pem
# 默认虚拟局域网网段,不要和实际的局域网冲突即可
server 10.8.0.0 255.255.255.0
ifconfig-pool-persist ipp.txt
# 10.0.0.0/8是我这台VPN服务器所在的内网的网段,读者应该根据自身实际情况进行修改
push "route 10.0.0.0 255.0.0.0"
# 可以让客户端之间相互访问直接通过openvpn程序转发,根据需要设置
client-to-client
# 如果客户端都使用相同的证书和密钥连接VPN,一定要打开这个选项,否则每个证书只允许一个人连接VPN
duplicate-cn
keepalive 10 120
tls-auth keys/ta.key 0 # This file is secret
comp-lzo
persist-key
persist-tun
# OpenVPN的状态日志,默认为/etc/openvpn/openvpn-status.log
status openvpn-status.log
# OpenVPN的运行日志,默认为/etc/openvpn/openvpn.log 
log-append openvpn.log
# 改成verb 5可以多查看一些调试信息
verb 5

4、配置内核和防火墙,启动服务

# 开启路由转发功能
sed -i '/net.ipv4.ip_forward/s/0/1/' /etc/sysctl.conf
sysctl -p
# 配置防火墙,别忘记保存
iptables -I INPUT -p tcp --dport 1194 -m comment --comment "openvpn" -j ACCEPT
iptables -t nat -A POSTROUTING -s 10.8.0.0/24 -j MASQUERADE
service iptables save
# 启动openvpn并设置为开机启动
service openvpn start
chkconfig openvpn on

    5、创建客户端配置文件

# 复制一份client.conf模板命名为client.ovpn
cp /usr/share/doc/openvpn-2.3.2/sample/sample-config-files/client.conf client.ovpn
# 编辑client.ovpn
vim client.ovpn
client
dev tun
# 改为tcp
proto tcp
# OpenVPN服务器的外网IP和端口
remote 203.195.xxx.xxx 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
# client1的证书
cert client1.crt
# client1的密钥
key client1.key
ns-cert-type server
# 去掉前面的注释
tls-auth ta.key 1
comp-lzo
verb 3

二、Windows客户端安装及配置

客户端系统:Windows7 64位

内网IP:172.16.4.4

OpenVPN版本:OpenVPN 2.3.3 Windows 64位

    1、下载安装OpenVPN

OpenVPN 2.3.3 Windows 32位 安装文件:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-i686.exe

OpenVPN 2.3.3 Windows 64位 安装文件:

http://swupdate.openvpn.org/community/releases/openvpn-install-2.3.3-I002-x86_64.exe

    2、配置client

将OpenVPN服务器上的client.ovpn、ca.crt、client1.crt、client1.key、ta.key上传到Windows客户端安装目录下的config文件夹(C:\Program Files\OpenVPN\config)

    3、启动OpenVPN GUI

在电脑右下角的openvpn图标上右击,选择“Connect”。正常情况下应该能够连接成功,分配正常的IP。

wKiom1RhjGbijB7xAABMoQo3Tnc522.jpg

wKioL1RhjgyxiZ17AAIRIRCqqws094.jpg    

    4、测试

wKiom1RhjfPD8_AYAAGxUvt_PCA503.jpg

ping通服务器的内网IP,说明已经接入到服务器的内部网络。

到OpenVPN服务器上查看客户端的连接情况,查看状态文件/etc/openvpn/openvpn-status.log:

我们在各种VPS评测博客,以及在一些广告渠道看到各种优惠的VPS的优惠信息都比较心动其价格和配置性能,在选购的时候我们是要参考一些用户的评论以及自己的评价标准。最为实际的在我们卖到或者能得到免费测试机器的时候,可以通过下面简单实用的VPS性能测试方法看看我们即将选择的VPS产品性能如何,如果在自己的可选标准范围之内,那就选择,如果认为不可以,就放弃。

第一,CPU、内存、硬盘检测

cat /proc/cpuinfo (查看CPU信息)
cat /proc/meminfo (查看内存信息)
df -lh (查看硬盘信息)

这个命令可以看到我们购买的VPS CPU信息是否与官方标准一样,有些时候告诉我们的与实际检测的不同。

第二,硬盘IO性能测试

dd if=/dev/zero of=test bs=64k count=4k oflag=dsync
dd if=/dev/zero of=test bs=8k count=256k conv=fdatasync

在"VPS性能测试工具之三: dd硬盘读写命令"有详细介绍这个命令的使用及具体的性能对比。

第三,UB跑分测试

在"VPS性能测试工具之二: UnixBench"有介绍到UB跑分测试的方法,可以根据自己的跑分测试性能,如果低于100分的直接不考虑,一般肯定会在400分左右。

第四,WGET下载测试

wget http://cachefly.cachefly.net/100mb.test

测试下载速度。

第五,PING及TOP测试

我们在拿到VPS的IP之后,可以用第三方的PING工具进行PING测试速度,或者在我们本地机器上PING测试,可以反应器机器的速度,如果我们做中文站点,一般PING在250之内可以接受的,也有些机器PING速度比较高,但是打开速度还不错。所以说PING只能是参考。

我们还可以用top命令来测试CPU占用情况(扩展阅读:检测MySQL负载过高及解决方法(详解SSH TOP命令))

总之,通过上述的5个方法及参考命令基本上可以测试到这款机器的性能对比。

转自: http://www.laozuo.org/1592.html | 老左博客

http://npm.taobao.org/

淘宝 NPM 镜像

这是一个完整 npmjs.org 镜像,你可以用此代替官方版本(只读),同步频率目前为 10分钟 一次以保证尽量与官方服务同步。

  • 当前 registry.npm.taobao.org 是从 registry.npmjs.org 进行全量同步的.
  • 当前 npm.taobao.org 运行版本是: cnpmjs.org@2.0.0-beta3
  • 本系统运行在 Node.js@v0.11.14 上.
  • nodejs.org/dist 镜像: npm.taobao.org/dist
  • phantomjs downloads 镜像: phantomjs mirror
  • Node.js 文档镜像: test/docs/api/index.html">Node.js Document
113,488 个模块 615,221 个模块版本 7 次删除
22,867 次本日下载 474,895 次本周下载 1,792,093 次本月下载
68,299 次昨日下载 488,804 次上周下载 2,211,639 次上月下载

同步状态

This registry will sync all packages from official registry.

上次同步完成时间: Fri Nov 28 2014 13:55:10 GMT+0800 (中国标准时间)

转:http://my.oschina.net/feedao/blog/223497

当我们把CentOS 6.5安装好以后,可以使用这个脚本来使用国内的阿里云镜像源

?
1
2
3
4
5
6
7
#!/bin/bash
mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo
mv /etc/yum.repos.d/epel.repo /etc/yum.repos.d/epel.repo.backup
mv /etc/yum.repos.d/epel-testing.repo /etc/yum.repos.d/epel-testing.repo.backup
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
yum makecache

 

 

有了国内的源地址,后面安装东西就方便了。

搜索docker,可以看到docker-io.x86_64和docker-registry.noarch,安装docker就简单了。

[root@localhost ~]# yum search docker
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
======================================================== N/S Matched: docker =========================================================
python-docker-py.x86_64 : An API client for docker written in Python
docker-io.x86_64 : Automates deployment of containerized applications
docker-registry.noarch : Registry server for Docker
fedora-dockerfiles.noarch : Example dockerfiles to assist standing up containers quickly
imagefactory-plugins-Docker.noarch : Cloud plugin for Docker
docker.x86_64 : KDE and GNOME2 system tray replacement docking application