当前位置: 首页 > news >正文

菜鸟学Linux 第065篇笔记 nfs

菜鸟学Linux 第065篇笔记 nfs




NFS (Network File System)

是一个可以将远端的计算机硬盘挂载到本地来进行使用,让本地的计算机可以使用远程

计算机所提供的硬盘,而且和在操作本地硬盘所使用的命令相同,没有区别 (个人解释)


它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。 (官方解释)




LPC (Local Procedure Call)


RPC (Remote Procedure Call)

Linux 提供rpc服务的程序: portmap 111/tcp and udp

一种编程技术(协议),简化分布式应用程序的开发、

可以将底层网络之间数据报文封装传送,隐藏,在上层表现为和本地的调用一样

实现数据交换可以基于二进制格式,也可文本格式(xmlRPC) --> 

SOAP(Simple Object Access Protocol)



NFS: Sun公司开发

NFSv1 公司内部使用

NFSv2 公开

NFSv3 流行

NFSv4 最新

NFS 只可以Unix/Linux之间数据通信



NFS实现

NFS Server端软件包

nfs-utils

yum install nfs-utils (默认已经安装)

# service nfs start


会启动三个主进程

nfsd(nfs服务) , mountd(挂载), quotad(配额)

nfsd 2049/tcp 2049/udp 

mountd 会变换

quotad 会变换

半随机的端口 由于随机所以可能会占用其它应用程序的端口

 想要固定需要配置





确保nfs server端 portmap已经启动

此软件为RPC的实现  (Remote Proceduer Call)

# service protmap status

工作端口   111/tcp 111/udp


rpcinfo -p 来查看一台主机上所有rpc的进程所监听的端口号




nfs配置文件/etc/exports

/path/to/some-dir CLIENT_LIST 

多个客户端之间使用空白字符分隔


每个客户端后必须跟一个小括号,里面定义了此客户端访问特性,如访问权限等

如 192.168.11.0/24(ro,async) 192.168.1.0/24(rw,sync)


访问属性

ro

rw

sync

async

root_squash 将root用户映射为来宾账号

no_root_squash

all_squash

anonuid, anongid 指定映射的来客账号UID和GID


如共享/shared目录

/shared  192.168.11.0/16(ro)

重启nfs

# service nfs restart


showmount -e NFS_SERVER 查看nfs服务器“导出”的各文件系统

showmount -e 192.168.11.122

showmount -a NFS_SERVER 查看nfs服务器所有被挂载的文件系统和客户端的对应列表

showmount -d NFS_SERVER 只显示被客户端挂载的



export命令 用来实现不中断nsf服务加载配置

-a  跟-r或-u选项同时使用,表示重新挂载所有文件系统或取消导出所有文件系统

-r  重新导出

-u  取消导出

-v  显示详细信息



让mountd 和 quotad 等进程监听在固定端口,编辑配置文件/etc/sysconfig/nfs

#MOUNTD_PORT=892

#RQUOTAD_PORT=875

#LOCKD_TCPPORT=32803

#LOCKD_UDPPORT=32769

将如上所述选项开启即可实现mountd quotad进程端口固定



客户端挂载服务器的目录


mount -t nfs NFS_SERVER:/PATH/TO/SOME_EXPORT /path/to/somewhere

_rnetdev 可以使系统开机是挂载nfs文件系统无法挂载时自动跳过




实现nfs服务步骤


nsf服务器端配置(ip 192.168.11.122)

1.安装nfs-utils

# yum install nfs-utils -y

# service nfs start

# chkconfig nfs on

# service portmap restart



2.创建要共享给其它客户端的访问的目录

# mkdir /shared

# useradd -u 1100 nfsuser

# chown -R nfsuser.nfsuser /shared/



3.编辑配置文件/etc/exports 使其共享给特定的客户端

# vim /etc/exports

/shared  192.168.11.0/24(ro,async,all_squash,anonuid=1100,anongid=1100)

# showmount -e 192.168.11.122

# exportfs -ar


(此时nfs服务器便配置好了,注意我这里的权限设置的小,如有其它需求可以自行配置)



客户端配置挂载服务器端的nfs文件系统 (ip 192.168.11.122)

# showmount -e 192.168.11.123

# mount -t nfs 192.168.11.123:/shared /mnt


(至此我的客户端便可以访问服务器端/shared目录下的文件,至于权限就归服务器端来定)


简单的nfs服务已经配置完成




下面给一个题目

实现两台主机共为一个网站进行服务

细节:1.如建立一个网站www.mysky.com 里边是一个论坛网站 

  2.在DNS服务器上分别指向这两台主机

  3.而这两台主机都可响应此请求


实现方式

1.建立两台lamp

2.建立nfs 使一台server端已经建设好该论坛网站

  并将网站的目录做共享

  然后客户端进行访问

3.mysql 要指向主服务器的mysql

就是说要给客户端配置访问mysql的权限


(个人有一个小疑问共享目录都做了,如何在安装论坛网站时使其主配置文件不一样呢)

本文转自Winthcloud博客51CTO博客,原文链接http://blog.51cto.com/winthcloud/1887852如需转载请自行联系原作者


Winthcloud

相关文章:

  • 更改INSM地址的操作
  • centos 7 yum安装kubernetes cluster 1.0
  • C++字符串string类常用操作详解(一)【初始化、遍历、连接】
  • Java设计模式圣经连载(03)-抽象工厂模式
  • Centos中文乱码问题的解决。
  • Python函数知识汇总-课堂笔记
  • AD与DNS集成,且有备份AD与DNS,主AD与DNS坏,备份DNS如何成为主
  • SubSonic3.0使用外连接查询时查询不出数据的问题修改
  • 海量文件拷贝(Windows/Linux)
  • VS.net和Reflector 图标解释
  • EPEL源
  • centos7 修改mac地址
  • c# 4.0新特性一览
  • 荣光医院医道会比赛策略
  • CSS布局模型 之 浮动模型(浮动的工作原理和清除浮动技巧?)
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • exports和module.exports
  • FastReport在线报表设计器工作原理
  • JavaScript设计模式与开发实践系列之策略模式
  • Laravel深入学习6 - 应用体系结构:解耦事件处理器
  • Map集合、散列表、红黑树介绍
  • Node + FFmpeg 实现Canvas动画导出视频
  • php面试题 汇集2
  • spring学习第二天
  • SQLServer之索引简介
  • Zsh 开发指南(第十四篇 文件读写)
  • 阿里云爬虫风险管理产品商业化,为云端流量保驾护航
  • 从0搭建SpringBoot的HelloWorld -- Java版本
  • 从零开始学习部署
  • 猫头鹰的深夜翻译:JDK9 NotNullOrElse方法
  • 面试遇到的一些题
  • 我感觉这是史上最牛的防sql注入方法类
  • 小程序01:wepy框架整合iview webapp UI
  • 一些关于Rust在2019年的思考
  • 用jQuery怎么做到前后端分离
  • Spark2.4.0源码分析之WorldCount 默认shuffling并行度为200(九) ...
  • ​Kaggle X光肺炎检测比赛第二名方案解析 | CVPR 2020 Workshop
  • (1)(1.19) TeraRanger One/EVO测距仪
  • (android 地图实战开发)3 在地图上显示当前位置和自定义银行位置
  • (c语言版)滑动窗口 给定一个字符串,只包含字母和数字,按要求找出字符串中的最长(连续)子串的长度
  • (Redis使用系列) Springboot 实现Redis 同数据源动态切换db 八
  • (ZT)出版业改革:该死的死,该生的生
  • (二)c52学习之旅-简单了解单片机
  • (每日持续更新)jdk api之FileFilter基础、应用、实战
  • (七)MySQL是如何将LRU链表的使用性能优化到极致的?
  • (算法)N皇后问题
  • (轉貼) UML中文FAQ (OO) (UML)
  • .equal()和==的区别 怎样判断字符串为空问题: Illegal invoke-super to void nio.file.AccessDeniedException
  • .NET Core SkiaSharp 替代 System.Drawing.Common 的一些用法
  • .net 受管制代码
  • .net访问oracle数据库性能问题
  • .net和jar包windows服务部署
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET学习全景图
  • .net之微信企业号开发(一) 所使用的环境与工具以及准备工作