【分布式存储】samba实现分布式磁盘

公司的服务器上的raid硬盘给我划分了一小块用来实验。 我怎么共享过来呢。可以NFS也可以samba。 需要输入用户名,密码。这样来挂载。

公司内部很少人用的系统,能保证raid数据安全就是个弱可用的系统了。 够用了。

其实就是磁盘共享

Samba是在Linux系统上实现SMB(Session MessageBlock)协议的一个免费软件,以实现文件共享和打印机服务共享。 <font color=red>SMB是一个协议.</font>

1 服务端:

公司做的,我只管用. 一会把搭建smaba服务端,写上.实验一下.

参考: https://www.cnblogs.com/hereboot/p/11707903.html

1.1 安装samba服务

yum install -y samba

1.2 配置samba服务

samba服务器最主要的配置文件其实只有一个,就是/etc/samba/samba.conf,这个配置文件可以分为两个部分,一个部分是全局参数,一部分是共享资源相关参数。

#1.全局部分参数设置:
[global]
        #与主机名相关的设置
        workgroup = zkhouse  <==工作组名称
        netbios name = zkserver   <==主机名称,跟hostname不是一个概念,在同一个组中,netbios name必须唯一
        serverstring = this is a test samba server <==说明性文字,内容无关紧要
        #与登录文件有关的设置
        log file = /var/log/samba/log.%m   <==日志文件的存储文件名,%m代表的是client端Internet主机名,就是hostname
        max log size = 50      <==日志文件最大的大小为50Kb
        #与密码相关的设置
        security = share       <==表示不需要密码,可设置的值为share、user和server
        passdb backend = tdbsam
        #打印机加载方式
        load printer = no <==不加载打印机
-----------------------------------------------------------
# 2.共享资源设置方面:将旧的注释掉,加入新的
#先取消[homes]、[printers]的项目,添加[temp]项目如下
[temp]              <==共享资源名称
        comment = Temporary file space <==简单的解释,内容无关紧要
        path = /tmp     <==实际的共享目录
        writable = yes    <==设置为可写入
        browseable = yes   <==可以被所有用户浏览到资源名称,
        guest ok = yes    <==可以让用户随意登录

工作模式 samba服务器有5种工作模式,分别为:

  • share,用户对samba服务器的访问不需要身份验证,允许匿名访问,用户的访问权限仅由相应用户对共享文件的访问权限决定
  • user,使用用户名和密码访问samba服务器,
  • server,使用另外一台服务器专门用来做身份验证,samba服务只提供文件和打印机共享服务
  • domain,域模式,不常用
  • ads,最新的一种工作模式,也不太常用

1.3 添加用户并设置密码

设置账号用于登录samba服务器,同时并设置密码。具体命令:

[root@localhost ~]# useradd shirx
[root@localhost ~]# smbpasswd -a shirx
New SMB password:
Retype new SMB password:

1.4 重启Samba服务器

// [root@localhost ~]# /etc/init.d/smb restart
//没有这个命令

改用:
service smb restart
service smb status

2 客户端:

2.1 客户端 = linux(centos7)

$ yum install -y samba-client

$ smbclient -L samba服务器IP -U shirx
Enter SAMBA\shirx's password:

        Sharename       Type      Comment
        ---------       ----      -------
        Fileserver      Disk
        IPC$            IPC       IPC Service ()
Reconnecting with SMB1 for workgroup listing.

        Server               Comment
        ---------            -------

        Workgroup            Master
        ---------            -------
        WORKGROUP            CJB-22-NO08
        
$ mkdir -p /data_cjb

$ mount -t cifs -o username=用户名,password=密码 //samba服务器IP/shi /data_cjb

[root@centos109 data_cjb]# ls /data_cjb
me108  me109  readme

这就能用了.

追击

想删除挂就执行下面的命令 #umount /mnt/MyShare 好像必须得加上uid,gid sudo mount -t cifs -o username=${USER},password=${PASSWORD},uid=$(id -u),gid=$(id -g),forceuid,forcegid, //server-address/folder /mount/path/on/ubuntu

追记:

客户端定期重启了。起来来之后发现如下问题,挂载目录没了。 另外,输入用户名密码也出错。

[root@centos108 ~]# mount | grep cjb

mount不见了。

虽然yperV,关闭宿主机不写这个也能挂载。但是在hyperV上显式地关闭在启动3.108 ,再进到3.108上一看,mount不见了。

重新启动后自动挂载目录

然后在/etc/fstab中添加下面这行 在/etc/fstab中添加下面这行 //192.168.100.11/shi /data_cjb/ cifs defaults,username=shirx,password=password

这样重新启动后,mount又自动挂载了。


2.2 windows

在Windows的运行,输入\192.168.100.11/shi(Samba对应的IP地址): 这个时候会弹出登录界面,直接输入之前设置的登录账号和密码就行了。

Written on July 8, 2020