天天看点

NAS应用底层架构实现项目

概念

       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企业应用底层架构实现项目配置完成

继续阅读