Rootop 服务器运维与web架构

2014-04-08
发表者 Venus
暂无评论

FreeNAS添加iSCSI

这里iSCSI等于是SAN存储中的IP-SAN。通过freenas来实现iSCSI挂载。

选择“服务”中的iSCSI-“入口s”-“添加入口”:

“全局配置目标”,保持默认。

portals:这个地方默认会绑定到本地ip+3260端口,不需要修改。

设置“初始的”:

保持默认即可,为了安全也可以修改。

授权访问:用户随便写,我这里用admin,密钥,字符数不少于12个,且不要用纯数字,这里是admin1234567890

target名,随便写,最好以iqn.开头,其它按照截图配置。认证方式选择 chap

拓展 ,名字范围,随便写,该范围的路径,按照如图所示。这个scsi文件可以通过freenas自带的webshell创建。大小写5GB,如果这个地方数据单位写错的话会自动提示。

关联targets,直接下拉菜单选择即可。

开启iSCSI服务,开始windows下挂载:

在server2003下好像需要手动安装iSCSI 发起程序,win7,server2008自带,安装过程自行百度。打开运行,输入: iscsicpl.exe 打开iSCSI 发起程序。

目标,输入freenas的ip地址,点击 快速连接 ,会看到 已发现的目标 下面提示无法登录到目标。

回到iSCSI发起程序,点击已发现的目标iqn.testscsi,点击 连接  出现 高级 ,选择 启用chap登陆 ,填写名称:admin 密码admin1234567890,确定。

提示  已连接。

现在目标已经连接,需要在磁盘管理中格式化磁盘。

提示需要进行初始化,可以看到添加的5G磁盘。然后格式化即可。完成。

2014-04-08
发表者 Venus
暂无评论

FreeNAS-9.2安装

FreeNAS是一套基于FreeBSD系统的网络附加存储,可以用来做nfs或cifs网络存储。以实现共享存储的功能。

目前最新版为FreeNAS-9.2.1.3,下载地址:http://download.freenas.org/9.2.1.3/RELEASE/x64/FreeNAS-9.2.1.3-RELEASE-x64.iso

这里用虚拟机代替物理机,安装测试。挂载镜像,启动。

选择安装的磁盘,注意freenas最好安装到单独的一块硬盘,不需要多大容量。

安装完成,提示说从http://192.168.1.109登陆,默认用户名为admin密码为freenas,第一次登陆以后会要求更改,并且下次使用root登陆。

提示说在此版本中,之前的web管理用户admin被移出,取而代之的是root账户。

在system-settings中可以设置界面语言以及所在时区,将其改为中文,时区为上海。现在关机freenas,添加4块10G硬盘,用来存放数据,模拟添加的硬盘。

现在开始创建一个磁盘阵列,用来做nfs服务。

点击“ZFS Volume Manager”

填写卷名,卷类型选择Stripe,等于是raid0,点击add volume添加。

卷创建完成,设置nfs共享。

authorized networks是设置访问权限,下面可以设置单个ip可以访问nfs服务。maproot用户设置为root,其它默认,下面路径通过浏览选/mnt/nfsshare ,这个目录在创建卷的时候自动生成。

点击确定,创建。提示“是否打开服务” 即是否开启nfs服务。

现在找一台linux机器,挂载nfs。

[root@localhost ~]# mkdir /mnt/nfs
[root@localhost ~]# mount 192.168.1.109:/mnt/nfsshare /mnt/nfs/
[root@localhost ~]# df -h
文件系统              容量  已用 可用 已用% 挂载点
/dev/sda2              48G  4.9G   40G  11% /
/dev/sda3              19G  173M   18G   1% /home
/dev/sda1              99M   12M   83M  13% /boot
tmpfs                 249M     0  249M   0% /dev/shm
192.168.1.109:/mnt/nfsshare
                       32G  128K   32G   1% /mnt/nfs
创建文件测试:
[root@localhost nfs]# touch a
[root@localhost nfs]# ll
总计 1
-rw-r--r-- 1 root root 0 2014-04-08 a
[root@localhost nfs]# mkdir aaa
[root@localhost nfs]# ll
总计 1
-rw-r--r-- 1 root root 0 2014-04-08 a
drwxr-xr-x 2 root root 2 2014-04-08 aaa
[root@localhost nfs]#

至此,NAS网络附加存储完成。解决的问题就是:多台服务器应用数据一致性问题。

其它解决方案比如:mfs,fastdfs,hadoop等。

2014-04-04
发表者 Venus
暂无评论

linux下挂载nas存储异常处理

原文来自:http://blog.zhanxb.com/post/441/

1、故障现象:
挂载nas前,需要挂载nas存储的目录权限和所属者设置:
drwxr-xr-x  5 www www 4096 Apr 21 11:50 nas_storage

使用如下命令进行nas存储的挂载:

mount -t nfs 10.2.1.6:/vol/chinaface_web01 /opt/www/nas_storage

此时挂载nas存储的目录权限和所属者自动变为:
drwxr-xr-x  5 mysql mysql 4096 Apr 21 11:50 nas_storage

经与nas管理员沟通,nas存储的授权方式是限定IP地址,没有设置用户。(即使设置了也不一定是mysql呀,nas管理员怎么知道我的系统有mysql用户呢)

查看/etc/password文件,发现mysql的用户id和组id都是500,在www用户id和组id 503之前,难道nas存储挂载后自动将目录所有者改成所有者id和组id都是500的用户和组?
实践证明确实如此,将所有50x用户删除(不删除似乎会有组id混乱),重启系统,再重建www用户,此时再挂载nas存储即可保持挂载前后所属者和组id保持一致。

2、nas挂载步骤
防火墙开放端口111、2049、4045和4046
关闭selinux

PS: CIFS协议的NAS挂载:

mount.cifs命令所属rpm包:

[root@localhost ~]# rpm -qf /sbin/mount.cifs
cifs-utils-4.8.1-19.el6.x86_64

CIFS协议挂载NAS到Linux。

mount.cifs //[NAS IP Address]/[Folder Name] /mnt -o username=xxx,password=xxx,domain=xxx (If uses domain authentication)

2014-04-03
发表者 Venus
暂无评论

keepalived从机接管后主机恢复不抢占VIP

在lvs+keepalived环境中,为了减小keepalived主从切换带来的意外风险,设置主机恢复后不抢占VIP。
待进行vrrp协议通告备机不可用时切换。主要修改两个地方。(红色部分)

只需修改主服务器state MASTER改为state BACKUP并添加nopreempt

! Configuration File for keepalived

global_defs {
notification_email {
acassen@firewall.loc
}
notification_email_from Alexandre.Cassen@firewall.loc
smtp_server localhost
smtp_connect_timeout 30
router_id mfs_master
}

vrrp_instance VI_1 {
state BACKUP
interface eth1
virtual_router_id 51
priority 100
nopreempt
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.0.11
}
}

拔线测试即可。

2014-04-02
发表者 Venus
暂无评论

使用keepalived时iptables需要开放的协议

原理说明:
1、 通过vrrp协议广播,每个keepalived vrrp都去争取master
2、 以virtual_router_id为组队标识。 同为一个vip服务的keepalived的virtual_router_id相同
3、 以priority 为权值,同一个virtual_router_id下那个priority大那个就是master,其它为backup
之前实验都是关闭iptables配置keepalived,后来开启iptables后,发现主从切换,vip无法获取或者释放。
因为iptables过滤了vrrp协议,它不属于任何端口,像icmp一样,需要单独放行。
iptables -A INPUT -p vrrp -j ACCEPT
或者直接写入到/etc/sysconfig/iptables中即可。

我这里的iptables脚本:

#!/bin/bash
iptables -F
iptables -X
iptables -Z

iptables -P INPUT DROP
iptables -P OUTPUT ACCEPT
iptables -P FORWARD ACCEPT

iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -A INPUT -i lo -j ACCEPT
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
iptables -A INPUT -p tcp --dport 9419 -j ACCEPT
iptables -A INPUT -p tcp --dport 9420 -j ACCEPT
iptables -A INPUT -p tcp --dport 9421 -j ACCEPT
iptables -A INPUT -p tcp --dport 9425 -j ACCEPT
iptables -A INPUT -p tcp --dport 873 -j ACCEPT
iptables -A INPUT -p icmp -j ACCEPT
iptables -A INPUT -p vrrp -j ACCEPT

service iptables save
service iptables restart
exit