Linux共享文件夹目录三种方法-NFS远程挂载,GlusterFS共享存储和samba共享目录

因为喜欢寻找便宜VPS和要经常更换服务器的问题,所以网站搬家就成了家常便饭的事情了。对于大型的网站数据,最好直接在机房与机房之间进行数据传递,常用的三个命令工具Rsync,SCP,Tar,可以帮助我们快速解决VPS远程网站搬家与数据同步。

不过,多亏小Z博客提醒,我们除了使用命令工具来实现数据传输,还可以使用硬盘挂载的方式来解决数据迁移的问题。利用NFS,即网络文件系统(Network File System)分布式文件系统协议,我们可以将不同的VPS主机的目录实现远程挂载,这样拷贝复制文件就方便多了。

GlusterFS是Scale-Out存储解决方案Gluster的核心,它是一个开源的分布式文件系统,具有强大的横向扩展能力,通过扩展能够支持数PB存储容量和处理数千客户端。GlusterFS一般用作企业级的文件存储方案,但是我们也可以利用GlusterFS在不同的VPS主机之间共享存储。

最后一个就是samba了。SAMBA 最初发展的主要目就是要用来沟通Windows 与 Unix Like 这两个不同的操作平台之间的共享,Samba配置简单,操作直观。NFS远程挂载、GlusterFS共享存储和samba共享服务器还可以用于文件协作、服务器镜像等,总之可扩展性非常强。

Linux共享文件夹目录三种方法-NFS远程挂载,GlusterFS共享存储和samba共享服务器

本文就来简单地分享一下NFS远程挂载、GlusterFS共享存储和samba共享服务器操作方法,更多的关于云存储站长工具,还可以了解:

  1. Nextcloud个人云存储绝佳选择:一键自动安装方法和云盘使用体验
  2. Lsyncd搭建同步镜像-用Lsyncd实现本地和远程服务器之间实时同步
  3. Linux VPS挂载Google Drive和Dropbox-实现VPS主机数据同步备份

一、NFS远程挂载

演示环境,服务端A:172.104.184.98,客户端B:107.161.18.176,如果你没有VPS,可以看看我自己用过的VPS主机榜单:VPS主机排行榜单

相关的命令操作如下:


#在两台VPS上安装执行安装
sudo apt-get install -y  nfs-kernel-server
#在A上创建文件夹
mkdir -p /media/wzfou/asus
#在A上编辑并添加授权B读写
vim /etc/exports
/media/wzfou/asus 107.161.18.176(rw,no_root_squash,async)
#在A上重启
sudo systemctl restart nfs-server.service

#在B上创建文件夹
sudo mkdir -p /home/wzfou/share
#在B上将刚刚创建的文件夹挂载到A上共享文件夹
sudo mount -t nfs 172.104.184.98:/media/wzfou/asus /home/wzfou/share

如果没有任何提示,就表示挂载成功了。

NFS远程挂载添加成功

现在A和B上共享文件就已经实现挂载并实时同步了,往共享文件夹上传或者删除文件就可以看到双向同步了。

NFS远程挂载双向同步

二、GlusterFS共享存储

2.1  GlusterFS Repository

Debian:

sudo apt-get install -y lsb-release
sudo apt-get install -y apt-transport-https

Add the public key for GlusterFS repository.

wget -O - http://download.gluster.org/pub/gluster/glusterfs/LATEST/rsa.pub | sudo apt-key add -
echo deb https://download.gluster.org/pub/gluster/glusterfs/LATEST/Debian/$(lsb_release -sc)/apt $(lsb_release -sc) main | sudo tee /etc/apt/sources.list.d/gluster.list

Ubuntu 16.04 / 14.04:

sudo apt-get install -y software-properties-common
sudo add-apt-repository ppa:gluster/glusterfs-3.8

2.2  安装 GlusterFS

更新 repository cache.

sudo apt-get update

安装 GlusterFS package.

sudo apt-get install -y glusterfs-server

启动glusterfs-server service .

sudo service glusterfs-server start

确认 glusterfs service 是否运行.

sudo service glusterfs-server status

GlusterFS共享存储添加

以下命令在服务端执行,添加客户端节点(107.161.18.176).

raj@gluster1:~$ sudo gluster peer probe 107.161.18.176
peer probe: success.

确认状态.

sudo gluster peer status

列出节点.

sudo gluster pool list

配置 Firewall。禁用防火墙或者将客户端的IP添加到允许范围内.

sudo iptables -I INPUT -p all -s <ip-address> -j ACCEPT

安装成功如下:

GlusterFS共享存储列出状态

2.3  创建共享存储卷

现在我们就需要创建好了共享存储卷,首先是在服务端上进行如下操作:


#创建文件夹
sudo mkdir -p /data/gluster/gvol0
#创建共享卷volume,并分别挂载服务端(139.162.175.85)和客户端(107.161.18.176)
sudo gluster volume create gvol0 replica 2 139.162.175.85:/data/gluster/gvol0 107.161.18.176:/data/gluster/gvol0 force
#启用卷
sudo gluster volume start gvol0
#查看卷
sudo gluster volume info gvol0

现在到客户端(107.161.18.176)挂载服务端(139.162.175.85),命令如下:


#安装客户端
apt-get install -y glusterfs-client
#创建文件夹
mkdir -p /mnt/glusterfs
#挂载服务端(139.162.175.85)
mount -t glusterfs 139.162.175.85:/gvol0 /mnt/glusterfs

#开机自动挂载
vim  /etc/fstab
139.162.175.85:/gvol0 /mnt/glusterfs glusterfs  defaults,_netdev 0 0

执行命令:df -hP /mnt/glusterfs,你就可以看到挂载成功了。

GlusterFS共享存储挂载成功了

使用df命令也能看出来。

GlusterFS共享存储查看本地硬盘

现在你就可以实现不同的VPS主机共享存储了,新增或者修改文件都可以看到同步。

GlusterFS共享存储同步

三、samba实现Linux与Windows共享

上面说到了两种共享方法适用于Linux之间,那么Windows与Linux如何共享呢?目前比较流行的方式就是通过一个跨平台网络文件共享协议:SMB/CIFS。Windows原生的支持SMB/CIFS,Linux也通过开源的软件Samba实现了SMB/CIFS协议。

3.1  安装samba

sudo apt-get install samba

3.2  创建共享目录

// 创建的目录即之后能够在Windows主机上直接访问的目录。
// 例如:在用户wzfou的主目录下新建share文件夹为共享目录
mkdir /home/wzfou/smbshare
// 由于Windows下的文件夹需可读可写可执行,需更改权限为777
sudo chmod 777 /home/wzfou/smbshare

3.3  修改samba配置文件

// 修改 /etc/samba/smb.conf
sudo vim /etc/samba/smb.conf
// 在smb.conf文件最后加上以下内容

[share]
path = /home/wzfou/smbshare
public = yes
writable = yes
valid users = wzfou
create mask = 0644
force create mode = 0644
directory mask = 0755
force directory mode = 0755
available = yes

关于smb.conf说明如下:

(1) [share]表示共享文件夹的别名,之后将直接使用这个别名。

(2) force create modeforce directory mode的设置是因为Windows下与Linux下文件和文件夹的默认权限不同造成的,Windows下新建的文件是可执行的,必须强制设定其文件权限。

(3) valid users 设置为你当前的Linux用户名,例如我的是wzfou,因为第一次打开共享文件夹时,需要验证权限。

3.4  设置登录密码

// 新建/etc/samba/smbpasswd文件
sudo touch /etc/samba/smbpasswd
// 根据3.3设置的valid users,设置用户密码
// wzfou 替换为你在3.3中设置的用户名
sudo smbpasswd -a wzfou
//输入两次密码后,会提示 Added user wzfou. 表示设置成功
// 若用户名非当前登录系统的用户名,可能会提示Failed

samba共享服务器安装

3.5  启动samba服务器

sudo /etc/init.d/samba restart

3.6  测试是否共享成功

sudo apt-get install smbclient 
smbclient -L //xx.xx.xx.xx/share
//还记得吗?share为3.3中设置的共享文件夹的别名
//如果共享成功,将要求输入之前设置的密码


samba共享服务器成功

3.7 在windows和Linux上使用samba

Windows 资源管理器->映射网络驱动器。输入格式是: \\ip地址\配置的名称,然后输入账号密码就连接成功。

samba共享服务器在windows访问

如果是Windows 7可能出现无法连接Samba的情况,你可以采取以下方法解决:

1、修改本地安全策略:运行secpol.msc打开“本地安全策略”窗体,依次点开“本地策略”-》“安全选项”,修改“网络安全: LAN 管理器身份验证级别”的值为“发送 LM 和 NTLM – 如果已协商,则使用NTLMv2 会话安全”,一路确定即可。

2、修改注册表:修改HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa下的LmCompatibilityLevel的值为1。

samba共享服务器解决无法访问

Linux的话,在Thunar中通过 smb://<samba-server-IP-address>/share 这个地址来访问。

samba共享服务器Linux访问

四、总结

Linux共享文件夹方法中,NFS远程挂载方法是最方便的,特别适合在不同的VPS主机服务器之间迁移网站数据,一旦远程挂载成功了我们就可以像本地复制数据一样方便了,这个比三个命令工具Rsync,SCP,Tar-快速解决VPS远程网站搬家与数据同步还要便捷。

GlusterFS创建共享卷的方法特别适合集群服务器,GlusterFS集群文件系统还可以应用到企业级的Docker分布式存储中。samba则实现了Linux与Windows之间的文件共享,之前我们分享了树莓派Raspberry Pi安装NextCloud教程-自建家庭私有云局域网共享,实际上我们也可以samba实现树莓派与其它设备共享。

文章出自:挖站否 https://wzfou.com/nfs-glusterfs-samba/,部分内容参考自呆尐兔兔 版权所有。本站文章除注明出处外,皆为作者原创文章,可自由引用,但请注明来源。


分享到:

关于站长(Qi),8年前经常混迹于免费资源圈中,有幸结识了不少的草根站长。之后自己摸爬滚打潜心学习Web服务器、VPS、域名等,兴趣广泛,杂而不精,愿意将自己经验与心得分享出来,与大家共勉。

已有 18 条评论
  1. Adm

    很不错

    1月6日 23:53 回复
    • Qi

      有些应该是企业级的共享所采用的。

      1月7日 17:27 回复
  2. 真的挺不错的。我现在用的直接用一个web 面板 上传 下载,感觉也还好。国内的网络是蛋疼的

    2017年12月19日 21:50 回复
    • Qi

      这个也比较适合集群。

      2017年12月20日 09:49 回复
  3. now

    NFS最好用了。

    2017年12月19日 17:07 回复
  4. qi总, 这封推送邮件进入了QQ垃圾箱里了, 而且从QQ邮箱里点击打开, 还被提示:该网页可能包含不良内容!

    2017年12月19日 16:41 回复
    • Qi

      难道是挂载两个字有问题? (:smoke:)

      2017年12月19日 19:50 回复
      • 不清楚诶, 我先不添加白名单, 等下一篇订阅我再关注下看看

        2017年12月19日 20:59 回复
        • Qi

          好的,谢谢。 (:blush:)

          2017年12月20日 09:49 回复
          • xzymoe

            报告 我的也是进垃圾邮箱了

            2017年12月20日 20:04 回复
            • Qi

              也是QQ邮箱吗?

              2017年12月21日 20:19 回复
              • xzymoe

                是的。。。从垃圾箱里#出来回复你的 哈哈

                2017年12月21日 21:22 回复
                • Qi

                  Gmail可能被标记为垃圾了。之前用的腾讯邮箱都没有这样的情况。

                  2017年12月22日 13:32 回复
                  • xzymoe

                    估计是,之前都是可以正常在收件箱的!!好像也是最近才。。。不过手动白名单了

                    2017年12月24日 20:50 回复
  5. 这个巨实用。还有挂载# Drive的

    2017年12月18日 22:33 回复
    • Qi

      适合国外的VPS。

      2017年12月19日 19:50 回复
  6. Alitaba

    WIN 7 开始就支持 NFS 了

    2017年12月18日 22:10 回复
    • Qi

      是的,挺方便的。

      2017年12月19日 19:53 回复

Login

欢迎!请登录你的账号。

记住我 忘记密码?

还未注册 注册

Lost Password

Register

返回顶部