nfs 的安装与使用

 


 

一、 NFS简介

   NFS是Network File System的简称,即网络文件系统。NFS是系统间进行文件共享

   的一种网络协议,它允许用户像访问本地文件一样去访问网络上共享的文件。它

   是UNIX系统中进行磁盘文件共享的方法。

 

   在NFS的应用结构中,有服务器(Server)和客户端(Client)两种角色,NFS客户端

   通过挂载NFS文件系统的方式访问NFS服务器中输出的共享目录。 在同一台主机中,既可

  以是NFS服务器,也可以是NFS客户端。

 

   实际上就跟普通的mount一样,平常的文件系统的mount,我们是将某个盘格式

   化为文件系统后,挂载到某个目录,这样我们就可以在这个目录下读写文件,也就

   是在对应的磁盘上读写。 nfs文件系统的使用就是将远程服务器机器上某个目录,

   挂载到本地的某个目录,这样在访问本地该目录的时候,实际上就是在远程的那个

   目录上进行对应的操作。

 

 

   NFS 的基本原则是“容许不同的客户端及服务端通过一组RPC分享相同的文件系统”,它是独立

   于操作系统,容许不同硬件及操作系统的系统共同进行文件的分享。

  NFS在文件传送或信息传送过程中依赖于RPC协议。RPC,远程过程调用 (Remote Procedure Call)

   是能使客户端执行其他系统中程序的一种机制。NFS本身是没有提供信息传输的协议和功能的,但

   NFS却能让我们通过网络进行资料的分享,这是因为NFS使用了一些其它的传输协议。而这些传输协

   议用到这个RPC功能的。可以说NFS本身就是使用RPC的一个程序。或者说NFS也是一个RPC SERVER。

   所以只要用到NFS的地方都要启动RPC服务,不论是NFS SERVER或者NFS CLIENT。这样SERVER和CLIENT

   才能通过RPC来实现PROGRAM PORT的对应。可以这么理解RPC和NFS的关系:NFS是一个文件系统,而

   RPC是负责负责信息的传输。

 

 

二、 NFS准备和配置工作

     1.服务器和客户端我们都采用linux(fedora --f20),为了正常使用NFS,我们需要在服务器和客户端

       安装NFS(在网上一些文章上说要安装portmap,新的发布版本上已经不需要了)

 

              sudo yum install nfs-utils

 

      ( 这里可以通过yum list|grep nfs* 来查看软件包里面是否有nfs相关的包)

       安装完之后,可以是rpm -qa|grep nfs进行查看

 

    2. 设置配置文件,在/etc/exports中添加:

        <输出目录> [客户端1 选项(访问权限,用户映射,其他)] [客户端2 选项(访问权限,用户映射,其他)]

         /tmp/nfs_test *(rw,no_root_squash,insecure)

       (要先设置配置文件,再启动nfs服务,否则提示/

    

    3. 启动nfs服务

         systemctl enable nfs-server.service

         systemctl start nfs-server.service

       

    4.查看:

       exportfs

       showmount -e

       showmount -a

    5. 在客户端mount 服务器端设置 共享目录,mount到本地目录上

       mount -t nfs 9.151.141.111:/tmp/nfs_test /mnt

       然后可以在/mnt目录里写文件,建目录,copy文件等等,实际上都是在

      服务器端/tmp/nfs_test里面进行的。

      也可以将两台机器上的文件相互copy...做备份也方便。

      unmount /mnt即可。

           (当mount时候提示资源忙 ,可以使用fuser:

             fuser通常被用在诊断系统的“resource busy”问题,通常是在你希望umount指定的挂载点得

             时候遇到。 如果你希望kill所有正在使用某一指定的file, file system or sockets的进程的时候,

            你可以使用-k 选项。

            格式为: $ fuser -m -v  (nfs挂载点) 回车执行后得到的结果依次是:用户 进程号 权限 命令

           此命令可以查看到访问此设备的所有进程,停止进程后umount.

            如果添加参数 -k则可以一次性将所有当前访问nfs共享盘阵的进程停止 也可以加-i 打开交互

            显示,以便用户确认

 

          #fuser -v -m 挂载点      即可查处 用户 PID等,KILL掉该进程后再umount.

          #umount -l 挂载点         选项 –l 并不是马上umount,而是在该目录空闲后再umount.

         还可以先用命令 ps aux 来查看占用设备的程序PID,然后用命令kill来杀死占用设备的进程,这样

         就umount的NFS服务安全非常放心了.

 

 

 

 

、misc

      在启动nfs服务的时候,使用了/etc/init.d/*** start 和service nfs star 都失败了,

      [root@localhost admin]# service nfs start
      Redirecting to /bin/systemctl  start nfs.service
      Failed to issue method call: Unit nfs.service failed to load: No such file or

      directory. See system logs and 'systemctl status nfs.service' for details.


     [root@localhost admin]# systemctl status nfs.service
       nfs.service
       Loaded: error (Reason: No such file or directory)
       Active: inactive (dead)

 

 

      因为系统启动和管理服务已经变为最新的systemd了,要通过

                systemctl start   ***.service

         的方式启动程序, (通过 systemctl enable ***.service 开机自启动)

        查找 ***.service的具体名字,在/lib/systemd/system/ 目录下的脚本,

      nfs-utils 的是 nfs-server.service。

               systemctl start nfs-server.service

      journalctl -xn 可以看具体出错细节。

 

          

Jun 23 19:42:41 local-bj systemd[1]: Starting NFS server and services...

Jun 23 19:42:41 local-bj rpc.nfsd[30236]: rpc.nfsd: writing fd to kernel failed: errno 111 (Connection refused)

Jun 23 19:42:41 local-bj rpc.nfsd[30236]: rpc.nfsd: unable to set any sockets for nfsd

Jun 23 19:42:41 local-bj systemd[1]: nfs-server.service: main process exited, code=exited, status=1/FAILURE

Jun 23 19:42:41 local-bj systemd[1]: Failed to start NFS server and services.

Jun 23 19:42:41 local-bj systemd[1]: Unit nfs-server.service entered failed state.

前面介绍了nfs是依赖rpc协议的,所以要启动rpc服务。

[root@local-bj nfs2]$ /bin/systemctl restart  rpcbind.service

[root@local-bj nfs2]$ /bin/systemctl restart nfs-server.service

 

 


   四、参考:

           http://www.cnblogs.com/mchina/archive/2013/01/03/2840040.html

           https://www.ibm.com/developerworks/community/blogs/IBMzOS/entry/20130907?lang=zh

发布了62 篇原创文章 · 获赞 10 · 访问量 15万+
展开阅读全文

mariadb集群不能启动服务,问题为Failed to open channel

05-29

在自己的虚拟机上玩了mariadb集群,结果第一个节点配置后就mysql服务一直起不来 三个node节点和id如下: mairadb1:192.168.0.107 mairadb2:192.168.0.108 mairadb3:192.168.0.109 虚拟机机器环境为三个centOs7 64位 mariadb为yum直接安装的 其中mariadb1的配置/etc/my.cnf.d/server.cnf为(其他的节点把wsrep_node_name和wsrep_cluster_address对应改了就是) binlog_format=ROW default-storage-engine=innodb innodb_autoinc_lock_mode=2 innodb_locks_unsafe_for_binlog=1 query_cache_size=0 query_cache_type=0 bind-address=0.0.0.0 datadir=/var/lib/mysql innodb_log_file_size=100M innodb_file_per_table innodb_flush_log_at_trx_commit=2 wsrep_provider=/usr/lib64/galera/libgalera_smm.so wsrep_cluster_address="gcomm://192.168.0.107,192.168.0.108,192.168.0.109" wsrep_cluster_name='galera_cluster' wsrep_cluster_address="192.168.0.107" wsrep_node_name='mairadb1' wsrep_sst_method=rsync wsrep_sst_auth=tuang_user:123456 安装流程为: 1、yum 安装mariadb 添加/etc/yum.repos.d/mariadb.repo 然后yum install MariaDB-Galera-server MariaDB-client galera 2、启动service mysql start 3、初始化/usr/bin/mysql_secure_installation 4、在各个节点对应hostname的mysql执行如下操作 MariaDB [(none)]> grant all privileges on *.* to 'tuang_user'@'mairadb1' identified by '123456'; MariaDB [(none)]> flush privileges; 5、在/etc/my.cnf.d/server.cnf后添加如上配置 6、修改/etc/selinux/config中的SELINUX=disabled 7、重启环境 8、关闭防火墙后 /etc/init.d/mysql start --wsrep-new-cluster 结果就Starting MySQL........ ERROR! tail日志的结果为 160529 21:11:52 [ERROR] WSREP: gcs/src/gcs.cpp:gcs_open():1379: Failed to open channel 'galera_cluster' at '192.168.0.107': -22 (Invalid argument) 160529 21:11:52 [ERROR] WSREP: gcs connect failed: Invalid argument 160529 21:11:52 [ERROR] WSREP: wsrep::connect(192.168.0.107) failed: 7 160529 21:11:52 [ERROR] Aborting 160529 21:11:52 [Note] WSREP: Service disconnected. 160529 21:11:53 [Note] WSREP: Some threads may fail to exit. 160529 21:11:53 [Note] /usr/sbin/mysqld: Shutdown complete 160529 21:11:53 mysqld_safe mysqld from pid file /var/lib/mysql/mariadb1.pid ended 已确认防火墙以关闭,/usr/sbin/sestatus -v后SELINUX 也为disabled的 但就是起步来服务,求大神解答! 问答

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 大白 设计师: CSDN官方博客

分享到微信朋友圈

×

扫一扫,手机浏览