概念
NAS:网络附加存储
实质:共享网络文件系统实现网络分布式文件数据存储
目的
实现企业内部多用户文件共享存储|在共享文件系统中
不同用户的文件数据的上传与下载|严格的用户访问控
制实现|不同服务对NAS服务器的访问实现
架构
Linux(RHEL5U1平台)+LVM+RAID+QUOTA+ACL+SAMBA+OPENSSH+LFTP
注意:LVM是一种把硬盘驱动器空间分配成逻辑卷的方法,增强磁盘空间分配的可扩展性
:RAID是提供数据存储磁盘的可扩展性解决方案|在此项目中由于设备资源忽略RAID
步骤
step<1>
安装全新Linux(在这里我安装的是RHEL5U1)如果是作为独立NAS服务器,建议安装Lnux 时,不要安装与此项目不相关的,用不着的服务,这样可以提高服务器的整体性能,反之,那你 就看着办,HOHO
step<2>
创建分区,这里可以根据你的实际情况进行硬盘格式化分区,特别注意在主分区与逻辑分区 上创建新的分区的不同,这里要特别注意所创建的分区的位置和label
在这里我的是在逻辑分区是在逻辑分区上创建新的分区,逻辑分区位置与label是/dev/sda4
分区以及相关命令:
root#fdisk /dev/sda4 root#partprobe /dev/sda4 创建分区大小为30G
创建PV :root#pvcreate naspv /dev/sda6
创建VG :root#vgcreate naspv nasvg
创建LV :root#lvcreate -n naslv -L 30g nasvg
查看所创建的:PV VG LV root#pvdisplay root#vgdisplay root#lvdisplay
格式化naslv root#mk2fs -j /dev/nasvg/naslv
注意:以上出现的naspv nasvg naslv 为所创建PV VG LV 所对应的设备名称
step<3>
创建NAS服务器所需要的挂载目录,在根下创建 mkdir nas
把/dev/nasvg/naslv分区挂载到/nas目录下 root#mount /dev/nasvg/naslv /nas
如果想在系统启动时自动挂在/nas这个目录,需要修改一下/etc/fstab这个配置文件
修改方法以内容:root#vim /etc/fstab
在下面增加相应的行:/dev/nasvg/naslv /nas ext3 defaults 0 0
测试是否能够自动挂载:root#mount -a
step<4>
批量添加用户,在配置用户磁盘配额和建立SAMBA用户时需要用到
这里先批量创建100个用户并设置密码为123456
root# for I in `seq 1 100` ; do echo “user$i 123456” >> userlist ; done
这个时候查看root#tail -l userlist 里面有批量创建的100个普通用户
执行这条命令: root# sed 's/ /:/g' userlist这条命令的意思是:把 userlist里面的用户名和密码之 间的空格换成冒号,为了后面进行批量配置用户磁盘配额和批量添加设置SAMBA用户密 码提供方便
step<5>
用户磁盘配额设置,在这里我把命令写进脚本useradd.sh:
!/bin/bash
for i in `sed 's/ /:/g' userlist| awk '{print $0}'`
do
useradd ${i%:*}; echo ${i#*:} | passwd ${i%:*} --stdin &> /dev/null
setquota -u ${i%:*} 2052000 3072000 0 0 /nas
done
在执行useradd.sh之前先修改vim /etc/fstab如下
修改这一行为:/dev/nasvg/naslv nas ext3 defaults,usrquota,grpquota 0 0
执行./useradd.sh这个脚本完成批量添加用户并配置磁盘配额
接下来执行相关测试磁盘配额命令
root#mount -o remount /nas
root#quotaon /nas
root#mount
测试用户磁盘配额是否设置成功,因为用户必须使用了磁盘也就是创建了数据才能看到用 户磁盘配额是否生效,这里我先给/NAS这个目录设置1777权限,然后用户创建一个文件, 这是查看用户磁盘配额状态,就会发生改变,证明用户磁盘配额设置成功!
root#chmod -R 1777 /nas
root#touch testquota
root#repquota /nas
root#chmod -R 755 /nas(收回/nas目录的1777权限)
step<6>
添加用户访问控制列表ACL
修改如下文件:root#vim /etc/fstab
修改这一行为:/dev/nasvg/naslv /nas ext3 defaults,usrquota,grpquota,acl 0 0
设置单个用户ACL命令如下
root#setfacl -m u:用户名:rw /nas
为了防止用户删除别人的文件数据,这里给/nas目录加上o+t权限
root#chmod o+t /nas
查看权限用户列表命令root#getfacl /nas
step<7>
创建并配置SAMBA
编辑SAMBA配置文件,文件位置在/etc/samba/smb.conf
root#vim /etc/samba/smb.conf添加如下内容
[nas]
comment = my nas share
path = /nas
public = yes
valid users = user1 user2 user3 user4 user5 user6
writeable = yes
hosts allow = 192.168.0.
browseable = yes
批量添加SAMBA用户并设置SAMBA用户密码,在这里我把命令写进脚本
脚本名称:smbpass.sh 脚本代码如下
smbpasswd -a ${i%:*} -s << EOF
${i#*:}
EOF
执行脚本:./smbpass.sh
查看SAMBA用户密码文件内容
root#cat /etc/samba/passdb.tdb
到此SAMBA用户以及密码设置完成
step<8>
启动相关服务所需要安装的包,请用系统安装树来安装所需要的rpm
启动以下相关服务进行NAS服务器用户访问读写上传下载测试
root#service smb restart
root#service vsftpd restart
root3service sshd restart
用NAS服务器管理员提供的SAMBA用户登录服务器测试
例如:root#smbclient -L //192.168.0.211/nas
user1$smbclient [email protected]/nas -U user1
user2$lftp [email protected]/nas
user3$ssh [email protected]/nas
小结:在使用SAMBA用户登录测试的时候,会出现进不到 smb> 命令操作终端的错误
这个时候就要查看一下,你当前所使用的用户时候有访问读写权限,也就是rwx权限位
如果没有清手动设置用户ACL访问控制权限,设置用户SSH到主机管理NAS服务器可以编辑root#/etc/hosts.deny 限制某个用户就在这里编辑放置他的IP在这里加以限制
例如:user1用户
<1>root#setfacl -m u:user1:rwx /nas
<2>把user1用户加到以下配置文件中
root#vim /etc/samba/smb.conf
到此NAS企业应用底层架构实现项目配置完成