NFS & samba

NAS:Network Attached Storage  网络附属存储   NFS   samba  FTP
基于网络的存储

SAN:Storage Area Network 存储区域网络(存储局域网)
基于存储的网络   万兆起   10Gb   IBM   联想   DELL  HP

采用网状通道(Fibre Channel ,简称FC,区别与Fiber Channel光纤通道)技术,通过FC交换机连接存储阵列和服务器主机,建立专用于数据存储的区域网络。SAN经过十多年历史的发展,已经相当成熟,成为业界的事实标准(但各个厂商的光纤交换技术不完全相同,其服务器和SAN存储有兼容性的要求)。
SAN专注于企业级存储的特有问题。当前企业存储方案所遇到问题的两个根源是:数据与应用系统紧密结合所产生的结构性限制,以及小型计算机系统接口(SCSI)标准的限制。大多数分析都认为SAN是未来企业级的存储方案,这是因为SAN便于集成,能改善数据可用性及网络性能,而且还可以减轻管理作业。

NFS:network file system 网络文件系统
作用:可以通过网络让不同的机器可以共享彼此的文件。   SUN  1984 sun小机  UNIX

不区分平台   (C|S)

RPC 使用111端口来监听客户端的请求,并相客户端提供nfs各个功能对应的端口号,RPC是怎么知道NFS各个端口号呢?NFS服务启动时会向rpc注册各个功能的端口号,同时各个功能的端口号不固定,如果NFS面向于公网,随机端口会带来麻烦

安装服务

rpcbind
nfs-utils

nfs server端
需要安装的软件:
    rpc主程序:rpcbind(portmap) ----负责为nfs各个功能指定端口号并将端口号信息通知给客户端的工作
    nfs主程序:nfs-utils     rpc.nfsd和rpc.mounted这两个守护进程是nfs服务的主要程序
    锁定文件程序:nfslock    rpc.lock和rpc.statd这两个守护进程保护文件系统的一致性

NFS的软件结构
    主配置文件:/etc/exports
    nfs文件系统的维护命令 :/usr/sbin/exportfs
    共享资源日志文件:/var/lib/nfs/etab
    client端查询NFS server端的共享命令:、/usr/sbin/showmount

主配置文件写法
vim /etc/exports

/share                        192.168.180.0/255.255.255.0(rw)
你要共享的目录                可以使用该共享的网段或者主机  (挂载参数)
rw/ro :该目录共享的权限是可读写(rw)或只读(ro),但最终能不能读写还是要看文件系统的权限

sync/async  是否同步

no_root_squash/root_squash: 客户端使用NFS文件系统的账号要是root ,设置root_squash意味着系统默认将root身份降为nfsnobody

all_squash/no_all_squash 不论登录NFS用户身份如何,都默认为nfsnobody

anonuid/anongid: 配合以上两个参数使用 ,设置被贬身份 NFS server中的那个用户

secure/insecure:   nfs通过1024以下的安全端口发送;  in----- 通过1024以上端口发送 

wdelay/no_wdelay:  wdelay表示如果多个用户要写入nfs目录,则归组写入(默认);no-----
表示如果多个用户写入  立即写入(会增加io压力) 

***************   netstat   ss  查看网络状态

启动NFS
/etc/init.d/rpcbind  start
/etc/init.d/nfs   start
/etc/init.d/nfslock start

chkconfig **** on

查看日志了解nfs的运行状态    /var/lib/nfs/etab

nfs使用的端口  rpc 111 
           nfs 2049

    其他功能的端口不固定。编辑/etc/sysconfig/nfs 固定
            RQUOTAD_PORT=875
            LOCKD_TCPPORT=32803
            LOCKD_UDPPORT=32769
            MOUNTD_PORT=892
            STATD_PORT=662
            STATD_OUTGOING_PORT=2020
            RDMA_PORT=20049
    

exportfs   -a  全部挂载(或卸载)
       -r  重新加载/etc/exports里的设置
        -v 显示过程

samba

samba使用的守护进程
smbd:管理smaba主机共享的目录、文件、打印机,利用可靠的TCP协议来传输数据。端口为139、445
nmbd:管理工作组、netbios的名称解析。利用UDP协议  137、138端口

samba服务软件结构

samba:提供samba服务所需的各项主要程序(smbd,nmbd)
samba-client:提供linux作为客户端所需要的工具命令
samba-common:提供服务器与客户端都会使用到的数据,如语法校验工具,samba的主配置文件

重要的文件

/etc/samba/smb.conf  主配置文件
/etc/samba/sambausers  用于存放windows与unix-like(类Unix)用户账号的对应关系文件
/usr/share/doc/samba版本号    存放的samba的使用手册

pam模块是linux一个认证机制,

[global]  全局配置
        workgroup = MYGROUP  定义工作组
        server string = Samba Server Version %v  定义客户端登录后显示的版本
;       netbios name = MYSERVER 定义网上邻居看到的主机名字
;       interfaces = lo eth0 192.168.12.2/24 192.168.13.2/24  定义是监听的网卡及网段
;       hosts allow = 127. 192.168.12. 192.168.13. 定义访问控制
        log file = /var/log/samba/log.%m  定义日志文件
        max log size = 50  定义日志大小  (切割使用)
        security = user        安全级别
        share    常用,任何人都可以登录,允许匿名访问
           user     常用,需要用户名和密码验证并且通过才可以访问服务
        server   Pdc环境  客户端能否登录由pdc服务器控制
        domain   需要加入域环境  客户端通过与服务器验证  LDAP
        ads      --------------------------------------   windows  AD
        passdb backend = tdbsam  存放用户名密码的方式
        smbpasswd   相当于passwd  不安全
        tdbsam     使用数据库存放用户名密码(目前正在使用)
#============================ Share Definitions ==============================
[public]  客户端看到的共享名称
comment = Public Stuff  描述信息
path = /tmp   共享目录
public = yes  是否允许匿名访问
guest ok = yes.no  同上
writeable = yes  是否可写
write list = +staff  (username +groupname @groupname)配合上一条使用 定义可写用户和组
browseable = yes 共享资源可否被浏览 默认是浏览
read only = yes  是否可读
read list = username +groupname @groupname
valid users = cjk xz @liege 定义可以访问的用户和组
invalid users =  用法同上 意思去翻
host allow = 192.168.1. EXCEPT 192.168.1.1 允许192.168.1.0、/24网段访问 但是1.1 不可访问

samba的用户管理
要添加的samba用户(配置文件)必须存在于/etc/passwd文件中

smbpasswd -a  用户名   添加用户并设置密码
      -x  删除用户
      -d  禁用用户
      -e  启用用户

linux 连接samba
smbclient -L //server IP      查看共享信息
smbclient -U 用户名%密码  //192.168.180.254/share
mount -t cifs //192.168.180.254/share /mnt -o user=red1,password=123456