ESXI5前奏Openfiler开源存储服务器

虚拟化中,存储就是成功他妈。不管是使用网络存储还是本地存储。虚拟化平台都需要良好的存储来做基底,就像一栋大楼的框架。所以,有个优秀的存储方式是进行虚拟化的第一步,Openfiler作为开源的存储OS现在已经相当不错了,想要的存储方式,基本上都有,是个廉价好用友好的存储OS。

Openfiler OS的获取:http://www.openfiler.com/community/download

这里就以下载openfiler的iso镜像来作实例。

再来说说硬件,存储服务器对硬件的要求,作为网络存储,需要有些强大的CPU、性能优越的硬盘、还有大吞吐量的网卡、基本上就可以了。对内存的要求相对低于其他硬件。而且Openfiler本身还可以运行在U盘这个小磁盘中。

Openfiler OS的安装:

installed openfiler os

下面以配置一个简单的iSCSI Traget 为例:

首先登陆openfiler开源存储OS的web管理页面,注意管理地址是:https://your.openfiler.os:446/ 默认的用户密码为openfiler/password

the openfiler default webadmin page

1.创建新的物理卷:

create new physical volumes

3.选择设备块列表中你想要用来做存储的磁盘:

create one primary on your disk

create a volume group for openfiler

4.在openfiler服务器上启用和启动iSCSI服务:

enable and start iscsi target

5.创建一个新的卷,相当于将块设备分区,也就是划分Storage上面的块:

create one block on net storage

6.map一个lum标识:

add one iscsi tragetmap a lum on your target

7.最后,在windows7中测试下:

1234

到此。KO。上这么多图真特么累啊。

基于ESXI5搭建的网络测试解决方案

通过两天的读书,基本上了解了ESXI的一些应用。下面是基于esxi5.5搭建的测试网络平台的解决方案。以下将基于个人理解所著,如有不当之处,欢迎加入共勉。。。

多说无益,下面是已有的硬件资源:

3台1U服务器:
拥有500GB硬盘/6个 、 4核CPU/6个 、 千兆网卡/6个 、 2GB内存条/12条

考虑到ESXI主机和网络存储主机的特性必须将上面3台已有的硬件资源拆分然后再分配,实现资源利用率达到更高:

都说存储时虚拟化之母,经过一番了解,存储主机对CPU、磁盘、带宽的要求都相对高,所以再次拼凑就为:

2个4核CPU、2条2GB内存条、4块500GB磁盘做RAID10可分配成9个100GB的iSCSI存储器,安装开源Openfiler系统

剩下硬件资源则平均再分配给ESXI主机各得到:

2个4核CPU、10GB运行内存、500GB本地硬盘、2张千兆网卡,安装ESXI5.5系统
先做图解吧:
the esxi and storage topology
1.Openfiler存储使用Raid10生成10GB容量预计读写速度达300MB/S
2. 由于交换机只有全双工100M端口,所以ESXI主机与Openfiler主机千兆直连解决存储速度瓶颈

最后理想的测试VM虚拟机最少数量及配置如下:

8台 4核2GB内存100GB本地存储最大100M带宽(瓶颈在实体交换机)。此为估值。

Azure云服务器上配置MariaDB主从复制

配置MySQL数据库主从复制的目的就是为了数据能够更安全、性能更好、可以实现故障快速切换等等

下面这里的两台双核4GB内存的Ubuntu 14.04+MariaDB-10.0.13的主从复制。先来看看我们编译安装的MariaDB数据库的my.cnf配置文件在哪里:

show mariadb cnf location

上面结果的意思就是这个MySQL服务器首先会在目录/etc找my.cnf,其次会去/etc/mysql/目录找,以此类推…鉴于我编译的时候指定了my.cnf的配置文件在:/app/mysql/etc目录下面。所有我们先将配置文件链接至目录/etc下面:

ln -s /app/mysql/etc/my.cnf /etc/my.cnf

主MariaDB的配置如下:

mariadb master conf

注释默认log-bin的二进制日志并配置新的二进制日志文件路径,新建二进制日志存放目录:

mkdir /app/mysql/logs && chown mysql.mysql -R /app/mysql/logs

新建MariaDB有复制权限的数据库用户:

GRANT REPLICATION SLAVE ON *.* TO ‘backup’@’42.159.228.231‘ IDENTIFIED BY ‘mariaDBbak.’;
create mariadb user

到此,主MariaDB的配置就完成了,重启MySQL服务器即可。至于查看master数据库服务器状态之类的下文再描述。

从MariaDB服务器的配置:

slave mariadb conf

注意的是server-id一定不是1、必须是大于1的其他数、这里就设12.read-only = ON 意思是:开启中继日志,relay_log指的是日志路径;

上面配置文件除了注释过#log-bin=mysql-bin外,其他都是默认的。所以,配置很简单吧。下面就来验证下。

MariaDB master server:

show master status

启动MariaDB从服务器:

change to mariadb master server

启动Slave server:

start slave;
show slave status;
show slave status

在主服务器上创建数据库验证是否同步到从服务器上:

create database and table for mastershow slave sync successful

到此,Azure云上的MariaDB主从复制就配置完成了。好久都没有发布多图片的博文了哈。

Windows Azure云编译安装MariaDB

试用1元Windows Azure,带宽都是杠杠的。下面演示下Windows Azure下编译安装LNMP环境,系统环境是Ubuntu 14.04 TLS版

软件版本:

数据库:mariadb-10.0.13 Stable
PHP:php-5.5.15 Stable
Nginx:nginx/1.4.6 (Ubuntu)(这里Nginx采用Ubuntu的apt安装方式)

1.新建MySQL用户:

考虑到系统安装,新建的用户不能登录(nologin),编辑 vi /etc/shells 添加 “/usr/sbin/nologin”使系统支持创建nologin用户

useradd -m /app/mysql -s /usr/sbin/nologin -u 555 mysql

2.安装编译环境和安装MariaDB已经PHP依赖包:

apt-get install build-essential
apt-get install libncurses5-dev cmake bison libxml2 libxml2-dev libxslt1-dev libcurl4-openssl-dev libbz2-dev \
libpcre3 libpcre3-dev unzip openssl libssl-dev libpng12-dev libfreetype6-dev libjpeg-dev libmcrypt-dev \
libldap2-dev libsasl2-dev libboost-dev

3.下载并编译安装MariaDB、PHP

wget http://cn2.php.net/get/php-5.5.15.tar.bz2/from/this/mirror

wget http://mirrors.neusoft.edu.cn/mariadb/mariadb-10.0.13/source/mariadb-10.0.13.tar.gz

1).安装目录分别为:/app/mysql 和 /app/php5

2).cmake . -DCMAKE_INSTALL_PREFIX=/app/mysql/ -DMYSQL_DATADIR=/app/mysql/data/ \
-DSYSCONFDIR=/app/mysql/etc/ -DMYSQL_UNIX_ADDR=/app/mysql/tmp/mysqld.sock -DMYSQL_TCP_PORT=3336 \
-DWITH_SSL=system -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_ZLIB=system -DENABLED_LOCAL_INFILE=1 \
-DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DMYSQL_USER=mysql
3)../configure --prefix=/app/php5 --with-config-file-path=/app/php5/etc/ --with-mysql=mysqlnd \
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-mysql-sock=/app/mysql/tmp/mysqld.sock --with-freetype-dir \
--with-jpeg-dir --with-png-dir --with-zlib --enable-xml --disable-rpath --enable-bcmath --enable-shmop \
--enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --with-mcrypt \
--with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap \
--with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --enable-fpm --with-fpm-user=www-data \
--with-fpm-group=www-data --enable-opcache

Ubuntu14.04 编译安装新版本的PHP5.5可能会出现如下错误:

/usr/bin/ld: ext/ldap/.libs/ldap.o: undefined reference to symbol 'ber_strdup@@OPENLDAP_2.4_2'
//usr/lib/x86_64-linux-gnu/liblber-2.4.so.2: error adding symbols: DSO missing from command line
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] Error 1

遇到这种类似的情况,说明「./configure 」沒抓好一些环境变数值。解决方法,来自老外的一篇文章:

在PHP源码目录下 vi Makefile 找到 EXTRA_LIBS 行,在行末添加 ‘ -llber ‘ 保存退出再次make即可。

到此 Ubuntu编译安装MariaDB就完成了,关于Nginx连接PHP这里就不多说了,下面是此次编译的结果:http://azure0.iloxp.com/tz.php 这只是测试用的,截图留着哈:

make install php5_5 for ubuntu 14_04

不得不再说下,在编译安装PHP5.4以后版本的时候最好使用自带的Opcache缓存功能,因为这个自带的缓存真的很不错,Hit很高,性能也很好。赞一个:

enabled php 5_5 opcache

各种云平台就这么频繁地进入我们的世界哈。

体验Windows Azure 1元试用一个月

Windows Azure进入国内后就与中国最大的第三方IDC公司—-世纪互联达成协议,由世纪互联运营。现在Windows Azure云开放有限注册,1元体验一个月的微软云服务,不能使用Windows live ID登陆,需要重新注册新的账号,但过程相当便捷,这点世纪互联做的很好。只需一元便可体验由世纪互联运营的Windows Azure 云服务。

注册过程简单,支付宝或者网银1元支付完毕即可体验:

show my account for vnet windows azure

随随便便先创建个虚拟机来着:支持widnows、Linux等等主机,这里我好像是创建的Ubuntu 14.04 LTS来着,双核4GB内存。体验账户最大硬件资源配置为就不清楚是如何了,但付费用户的虚拟机还支持最大为:8核56GB。看起来有点神奇哈。

现在来看看网络速度吧,有大型IDC运营,带宽就是不错哈,秒杀了一切云带宽。下面是Ubuntu系统下直接使用wget命令从阿里云镜像里面下面Ubuntu 14.04 desktop 镜像的速度截图:

system network speed

 

CentOS6.3创建新的loop设备

最近搭建了PXE网络安装Linux服务器,需要大量的loop设备来挂载iso镜像作为系统安装源。其实,要想搭建一个完整的PXE安装服务器,源的配置还是一个很大的问题,高级点,大型点的我想都会使用rsync的方式直接同步官方源吧。

好了,废话不多说,相信很多人会遇到过这样的mount提示:mount: could not find any free loop device

意思就是说 不能找到空闲的loop 设备了。

大伙都知道,linux系统设备文件都是存在目录 /dev/ 下面。先来看看已经有的loop设备数量:

[root@localhost html]# losetup -a
/dev/loop0: [0803]:5506094 (/var/www/html/CentOS-5.8-x86_64-bin-DVD-1of2.iso)
/dev/loop1: [0803]:5506099 (/var/www/html/CentOS-5.9-x86_64-bin-DVD-1of2.iso)
/dev/loop2: [0803]:5506103 (/var/www/html/CentOS-6.0-x86_64-bin-DVD1.iso)
/dev/loop3: [0803]:5506105 (/var/www/html/CentOS-6.1-x86_64-bin-DVD1.iso)
/dev/loop4: [0803]:5505636 (/var/www/html/CentOS-6.2-x86_64-bin-DVD1.iso)
/dev/loop5: [0803]:5506068 (/var/www/html/CentOS-6.3-x86_64-bin-DVD1.iso)
/dev/loop6: [0803]:5506109 (/var/www/html/CentOS-6.4-x86_64-bin-DVD1.iso)
/dev/loop7: [0803]:5506016 (/var/www/html/CentOS-6.5-x86_64-bin-DVD1.iso)
/dev/loop8: [0803]:5506127 (/var/www/html/CentOS-7.0-1406-x86_64-DVD.iso)

CentOS 6.3以来,默认存在的loop device就只有 loop0-loop7这8个了,我们用mknod命令就可以创建loop块设备,创建loop块设备很简单,一条命令就可以搞定了:

mknod -m 0660 /dev/loopX b 7 X

注意loopX对应的X。如下面示例:

create loop device

我们可以用losetup命令来查看已经在使用的loop block device 的数量。losetup -a |wc -l 

Python基础

最近偶尔看看Python,纯Python菜鸟初学者,这里当做一次笔记和回顾吧。Python算术运算、简单for循环、对文件的读写操作等等。

学习环境:Ubuntu 14.04 Server版/ Python 2.7.6

1.Python中的简单for循环:
结构:  for var in loop_list 。eg:vi for1.py 其中loop_list还可以是某文件里面的内容,下面是一个实例:

#!/usr/bin/env python
import os
for i in range(7):
 print i
for i in ('zhangsan','lisi','awu'):
 print i
for i in ('fuck'):
 print i
for i in xrange(2**10):
 if i <= 1022:
   continue
 else:print i

执行结果如图所示:

python_for

2.Python中对文件的操作:创建、打开、查看、关闭

#!/usr/bin/env python
import tab
fo = file('user1.txt','w')
fo.write('This is user1.txt file')
fo.close()
fo = file('user1.txt','a')
fo = open('user1.txt') ## Or use 'fo = file('user1.txt')
for line in fo.readlines():print line.split(),
fo.close()

3.输入输出:

输入: a = raw_input("This is your enter content")
输出:print ("This is output content from you enter %s"%a)

爱在记忆中的猪脚

曾经一度,连续一个月,每天的晚餐都是《隆江猪脚饭》。搞得现在想起那个味道就恶心。但今天自己又想吃猪脚了,结果只能自己做来吃了哈。猪脚是一道很美味的菜肴,而且营养价值相当高,据隆江猪脚记载。猪脚有美白,抗癌等等功效。其作用均来自猪脚里存在的胶原蛋白,胶原蛋白非但只有猪脚上有,猪皮上也含有大量此类物质。但猪脚上出来胶原蛋白外还有其他多种有营养价值的物质。

一道来自<爱在记忆中的猪脚>——–>:猪脚加酸菜是本道菜的主打、最好是酸酸的水咸菜。

食材:猪脚、酸菜、蒜头、姜、花生、蚝油等等

厨具:高压锅、土砂锅

最终效果图:

zhujiao

做法:猪脚切块片状、姜块(姜片)、花生、少许油、适量盐、一起放到高压锅里面。再加能浸泡里面全部食材的二分之一水,文火30分钟后取出来放到土砂锅里面。再用文火焗20分钟即可,途中再加姜片、油、适量盐。

<爱在记忆中的猪脚>就这样做好了。

多网卡服务器pxe网络自动安装CentOS

PXE网络自动安装已经不是什么新鲜的东西了。下面将会总结PXE网络安装Linux(主要是基于CentOS) 的几项注意点。

1.实验和现实确实是两码事,CentOS6.1以上版本利用PXE方式自动安装多网卡服务器不做对应的ksdevice处理会出现如下错误:
iBFT doesn’t couldn’t provide valid NIC MAC address

这种情况是指在多网卡服务器启动pxe自动安装后,仍然需要手动选择对应的DHCP服务器分配IP地址的网卡才能继续进行下一步自动安装。

对于这种情况,解决方法有:在isolinux.cfg(网络自动安装为 ../pxelinux.cfg/default)配置文件中的 append 字段指定 ksdevice 设备。

eg: append initrd=initrd.img ks=http://192.168.221.1:8080/ks/ks65.cfg selinux=0 ksdevice=eth0

ksdevice的值可以是:eth0/em1 这里的eth0和em1指的是服务器第一块网卡设备。同时可是用 ksdevice=link 表示接了网线的那块网卡设备

2.关于pxe服务环境问题,我想,pxe网络安装大部分都是搭建在Linux平台的吧。我这里是基于CentOS6.3平台搭建的。用的都是CentOS6.5 x64 的vmlinuz 和 initrd.img 文件。PXE :CentOS6.3 + httpd+tftp+dhcpd 。iptables已经开放了tcp8080端口(httpd)用,和udp 67、69端口。这个环境是完全没有问题的,tftpd安装好指定了跟目录路径启动了就可以使用了。但一直get不了文件下来。原因大部分都是Linux中的selinux在作怪,要禁用selinux。直接setenforce 0 或者修改配置文件SELINUX=enforcing —–> SELINUX=disabled

3.ks.cfg配置文件,这里就不做具体说明了。里面涉及到的东西非常多。下面归纳为几点:

1.)安装路径—-cdrom http nfs ftp
2.)分区—–清除磁盘mbr、指定磁盘sda、sdb、(可选)
3.)post脚本—-安装后执行的脚本。如图:

ks_cfg

别说一个月都没更新

离 kutea.net 这个域名过期还有一个多月。现在想来当初建博客原因和现在用博客的原因真是背道而驰了哈。当初,带着好奇,想分享/记录一些自己学过的,能够真正实现的技术而建立了酷特尔博客,大部分都是IT类技术的博文。
赶在81,尽快更新个文章,就这篇文章已经写了十几天了还没发布。
说说阿里云DNS,223.5.5.5 223.6.6.6 主备。不错,能解析一些202.96.128.186不能解析的本站。已经更新了路由器DNS配置。
话说明天77了。果断上班…

qiqijie