Ⅰ iscsi、cifs、nfs在存储上的区别。
iscsi、cifs、nfs区别为:对象不同、环境不同、方式不同。
一、对象不同
1、iscsi:iscsi是针对数据块存储的。
2、cifs:cifs是针对共享文件存储的。
3、nfs:nfs是针对共享文件存储的。
二、环境不同
1、iscsi:iscsi主要应用在Windows环境下,适用于TCP/IP通讯协议。
2、cifs:cifs主要应用在NT/Windows环含旅境下。
3、nfs:nfs主要应用在UNIX环境下,广泛应用在FreeBSD、SCO、Solaris等等异构操作系统平台。
三、方式不同
1、iscsi:iscsi并不能用于在磁盘中存储和管理数据,是通过TCP/IP网络传输文件时的文件组织格式和纳老罩数据传输方式。
2、cifs:cifs让协议运行于TCP/IP通信协议之上,让Unix计算机可以在网络邻居上被Windows计算机看到,并进一步传递存储数据。
3、nfs:nfs能够支持在不同类型的系统之间通过网络进行文件洞闹共享存储。
Ⅱ NFS存储介绍
linux NFS共享存储
NFS 是(Network Flie System)网络文件系统的帆悉棚缩写,通过网络存储和组织文件的一种方法或机制。
在企业中前端所有的应用服务器接收到用户上传的图片、文件、视频,都会统一存放到后端的存储服务器上,方便前端应用服务器的统一存取。
8.创建共享目录并授权
7.因为在前面优化的陆坦时候把开机自动挂载的服务关了,态则所以没有挂载上,
挂载扩展
服务端参数查看
mount -0 本地参数优化
1,请看上述笔记
Ⅲ 分布式文件系统的NFS介绍
(NFS)(Network File System)是个分布式的客户机/服务器文件系统。NFS的实质在于用户间计算机的共享。用户可以联结到共享计算机并像访问本地硬盘一样访问共享计算机上的文件。管理员可以建立远程系统上文件的访问,以至于用户感觉不到他们是在访问远程文件。
NFS是个到处可用和广泛实现的开放式系统。 允许用户象访问本地文件一样访问其他系统上的文件。提供对无盘工作站的支持以降低网络开销。
简化应用程序对远程文件的访问使得不需要因访问这些文件而调用特殊的过程。
使用一次一个服务请求以使系统能从已崩溃的服务器或工作站上恢复。
采用安全措施保护文件免遭偷窃与破坏。
使NFS协议可移植和简单,以便它们能在许多不同计算机上实现,包括低档的PC机。
大型计算机、小型计算机和文件服务器运行NFS时,都为多个用户提供了一个文件存储区。工作站只需要运行TCP/IP协议来访问这些系统和位于NFS存储区内的文件。工作站上的NFS通常由TCP/IP软件支持。对DOS用户,一个远程NFS文件存储区看起来是另一个磁盘驱动器盘符。对Macintosh用户,远程NFS文件存储区就是一个图标。 服务器目录共享 服务器广播或通知正在共享的目录,一个共享目录通常叫做出版或出口目录。有关共享目录和谁可访问它们的信息放在一个文件中,由操作系统启动时读取。
客户机访问 在共享目录上建立一种链接和访问文件的过程叫做装联(mounting),用户将网络用作一条通信链路来访问远程文件系统。
NFS的一个重要组成是虚拟文件系统(VFS),它是应用程序与低层文件系统间的接口。 close文件关闭操作
create 文件生成操作
fsync将改变保存到文件中
getattr 取文件属性
link 用另一个名字访问一个文件
lookup 读目录项
mkdir建立新目录
open 文件打开操作
rdwr 文件读写操作
remove 删除一个文件
rename 文件改名
rmdir删除一目录
setattr 设置文件属性 Andrew File System(AFS)Andrew文件系统(AFS)
AFS是专门为在大型分布式环境中提供可靠的文件服务而设计的。它通过基于单元的结构生成一种可管理的分布式环境。一个单元是某个独立区域中文件服务器和客户机系统的集合,这个独立区域由特定的机构管理。通常代表一个组织的计算资源。用户可以和同一单元中其他用户方便地共享信息,他们也可以和其他单元内的用户共享信息,这取决于那些单元中的机构所授予的访问权限。
文件服务器进程 这个进程响应客户工作站对文件服务的请求,维护目录结构,监控文件和目录状态信息,检查用户的访问。
基本监察(BOS)服务器进程 这个进程运行于有BOS设定的服务器。它监控和管理运行其他服务的进程并可自动重启服务器进程,而不需人工帮助。
卷宗服务器进程 此进程处理与卷宗有关的文件系统操作,如卷宗生成、移动、复制、备份和恢复。
卷宗定位服务器进程 该进程提供了对文件卷宗的位置透明性。即使卷宗被移动了,用户也能访问它而不需要知道卷宗移动了。
鉴别服务器进程 此进程通过授权和相互鉴别提供网络安全性。用一个“鉴别服务器”维护一个存有口令和加密密钥的鉴别数据库,此系统是基于Kerberos的。
保护服务器进程 此进程基于一个保护数据库中的访问信息,使用户和组获得对文件服务的访问权。
更新服务器进程 此进程将AFS的更新和任何配置文件传播到所有AFS服务器。
AFS还配有一套用于差错处理,系统备份和AFS分布式文件系统管理的实用工具程序。例如,SCOUT定期探查和收集AFS文件服务器的信息。信息在给定格式的屏幕上提供给管理员。设置多种阈值向管理者报告一些将发生的问题,如磁盘空间将用完等。另一个工具是USS,可创建基于带有字段常量模板的用户帐户。Ubik提供数据库复制和同步服务。一个复制的数据库是一个其信息放于多个位置的系统以便于本地用户更方便地访问这些数据信息。同步机制保证所有数据库的信息是一致的。
Ⅳ NFS 与 NAS 是什么关系
NFS是NAS服务器支持的其中一种文件系统。
1、NAS被定义为一种特殊的专用数据存储服务器,包括存储器件和内嵌系统软件,可提供跨平台文件共享功能。NAS通常在一个LAN上占有自己的节点,无需应用服务器的干预,允许用户在网络上存取数据,在这种配置中,NAS集中管理和处理网络上的所有数据,将负载从应用或企业服务器上卸载下来,有效降低总拥有成本,保护用户投资。
它是一种专用数据存储服务器。它以数据为中心,将存储设备与服务器彻底分离,集中管理数据,从而释放带宽、提高性能、降低总拥有成本、保护投资。其成本远远低于使用服务器存储,而效率却远远高于后者。目前国际着名的NAS企业有Netapp、EMC、OUO等。
2、NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。
(4)nfs共享存储实现原理扩展阅读:
NFS最显而易见的好处:
1、节省本地存储空间,将常用的数据存放在一台NFS服务器上且可以通过网络访问,那么本地终端将可以减少自身存储空间的使用。
2、用户不需要在网络中的每个机器上都建有Home目录,Home目录可以放在NFS服务器上且可以在网络上被访问使用。
3、一些存储设备如软驱、CDROM和Zip(一种高储存密度的磁盘驱动器与磁盘)等都可以在网络上被别的机器使用。这可以减少整个网络上可移动介质设备的数量。
参考资料来源:
网络-NAS
网络-NFS
Ⅳ 一文学会nfs原理、安装、配置、挂载
1.用户进程访问NFS客户端,使用不同的函数对数据进行处理
2.NFS客户端通过TCP/IP的方式传递给NFS服务端。
3.NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
4.nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
5.Rpc.mount进程判断客户端是否携竖册有对应的权限进行验证。
6.idmap进程实现用户映射和压缩
7.最后NFS服务端会将对应请求的函数转换为本地能识别的命令辩宏,传递至内核,由内核驱动硬件。
安装nfs服务端
严格按照共享目录的路径 允许访问的NFS客户端(共享权限参数)格式书写,定义要共享纤脊的目录与相应的权限
nfs共享参数参数作用
安装客户端,仅启动rpc服务
客户端挂载:
开机挂载
Ⅵ nfs是什么纳米
NFS(Network File System)是一种分布式文件系顷陪轿统,允许用户在网络上共享和存储文件。NFS可以实现跨多台计算机上的文件雀肆共享,可以让用户在不同的计算机上访问同一乱皮份文件,而无需复制。
Ⅶ nfs能共享pv吗
NFS可以共享渗毕PV,它是一种文件共享协议,可以让用户在不同的计算机之间共享文件和文件夹。NFS可以让用户在不同的计算机之间共享文件和文件夹碰早,这样可以节省存储空间和计算资源。NFS可以让用户在不同的计算机之间共享文件和文件夹,这样可以更有效地利用存储空间和计算资源。NFS可以让笑喊雀用户在不同的计算机之间共享文件和文件夹,这样可以更有效地利用存储空间和计算资源,并可以更快地访问文件和文件夹。
Ⅷ mysql为什么能用nfs作为共享存储
还是先上规划图
1.首先进行资源的分析
1)Vip
2)Mysqld
3)Nfs
理清他们之间的启动先后顺序:nfs必须在Mysqld前启动
2.nfs的配置
Nfs共享目录上挂载的分区,最好做成lvm,实现自动扩展
2.1.安装
#yum-yinstallnfs-utils
2.2配置
#mkdir/share
#vim/etc/exports
172.16.98.3:/share172.16.98.1(rw,no_root_squash)172.16.98.2(rw,no_root_squash)
#servicenfsstart
#groupadd-g186mysql
#useradd-u186-gmysql-s/sbin/nologin-Mmysql
#chownmysql:mysql/share
3.Mysql1结合nfs的安装测试
3.1挂载nfs
#mkdir/data
#chownmysql:mysql/data
#mount172.16.98.3:/share/data
3.2使用mysql的解压缩包安装
#groupadd-g186mysql
#useradd-u186-gmysql-s/sbin/nologin-Mmysql
*在三台机器上,创建的mysql组和用户的uid、gid要保持一致
#tarxfmysql-5.5.24-linux2.6-i686.tar.gz-C/usr/local
#cd/usr/local
#ln-smysql-5.5.24-linux2.6-i686mysql
#cdmysql
#chown-Rmysql:mysql.
#scripts/mysql_install_db--user=mysql--datadir=/data
#chowm-Rroot.
#cpsupport-files/my-large.cnf/etc/my.cnf
#cpcp孙神喊support-files/mysql.server/etc/rc.d/init.d/mysqld
#chmod+x/etc/rc.d/init.d/mysqld
#vim/etc/profile
PATH=$PATH:/usr/local/mysql/bin
#exportPATH=$PATH:/usr/local/mysql/bin
3.3编辑配置文件,启动服务
#vim/etc/my.cnf
[mysqld]
thread_concurrency=2
datadir=/data
#servicemysqldstart
3.4另一台mysql的安装
参考前面的步骤
需要说明一点的是
Mysql的安装,这里不需要再初始化mysql
##tarxfmysql-5.5.24-linux2.6-i686.tar.gz-C瞎核/usr/local
#cd/usr/local
#ln-smysql-5.5.24-linux2.6-i686mysql
#cdmysql
#chowm-Rroot.
#cpsupport-files/my-large.cnf/etc/my.cnf
#cpcpsupport-files/mysql.server/etc/rc.d/init.d/mysqld
#chmod+x/etc/rc.d/init.d/mysqld
#vim/etc/profile
PATH=$PATH:/usr/local/mysql/bin
#exportPATH=$PATH:/usr/local/mysql/bin
#servicemysqldstart
#cd/data
#
3.5停止所有资源
1)关闭mysql服务
2)将nfs共享目录卸载
4.Corosync的安装
前期准备
1)ssh双机互信,方便配置
2)时间保持一致
3)/etc/hosts,主机名则野设置,互相解析
4.1corosync的安装,两台都安装上
##yuminstall-ycluster-glue-1.0.6-1.6.el5.i386.rpmcluster-glue-libs-1.0.6-1.6.el5.i386.rpmcorosynclib-1.2.7-1.1.el5.i386.rpmcorosync-1.2.7-1.1.el5.i386.rpmheartbeat-3.0.3-2.3.el5.i386.rpmheartbeat-libs-3.0.3-2.3.el5.i386.rpmlibesmtp-1.0.4-5.el5.i386.rpmpacemaker-cts-1.1.5-1.1.el5.i386.rpmpacemaker-libs-1.1.5-1.1.el5.i386.rpmpacemaker-1.1.5-1.1.el5.i386.rpmperl-TimeDate-1.16-5.el5.noarch.rpmresource-agents-1.0.4-1.1.el5.i386.rpm
4.2corosync的配置
1)mysql1
#cd/etc/corosync
#cpcorosync.conf.examplecorosync.conf
#vimcorosync.conf
compatibility:whitetank
totem{
version:2
secauth:on开启身份验证
threads:0
interface{
ringnumber:0
bindnetaddr:172.16.0.0
mcastaddr:226.94.1.1
mcastport:5405
}
}
logging{
fileline:off
to_stderr:on
to_logfile:yes
#to_syslog:yes
logfile:/var/log/cluster/corosync.log
debug:off
timestamp:on
logger_subsys{
subsys:AMF
debug:off
}
}
amf{
mode:disabled
}
service{
ver:0
name:pacemaker
}
#corosync-keygen创建authkeys
#scpauthkeyscorosync.confnode2:/etc/corosync
两台mysql上分别创建用于日志的目录
#mkdir/var/log/cluster
4.3通过mysql1开启corosync,配置资源
1)开启
#servicecorosyncstart
#sshnode2'servicecorosyncstart'
#crm_mon
============
Lastupdated:ThuAug922:12:222012
Stack:openais
CurrentDC:node1.7ing.com-partitionwithquorum
Version:1.1.5-1.1.el5-
2Nodesconfigured,2expectedvotes
0Resourcesconfigured.
============
Online:[node2.7ing.comnode1.7ing.com]
2)资源的配置
#crm
crm(live)#configure
crm(live)configure#primitivevipocf:heartbeat:IPaddrparamsip=172.16.99.1
crm(live)configure#primitivemysqldlsb:mysqld
crm(live)configure#primitivenfsocf:heartbeat:Filesystemparamsdevice=172.16.98.3:/sharedirectory=/datafstype=nfsopstarttimeout=60opstoptimeout=60
*定义nfs资源,默认的超时时间是20s,是小于建议的时间60s的,所以手动配置
crm(live)configure#colocationvip_mysqld_nfsinf:mysqldnfsvip
crm(live)configure#ordermysqld_after_nfsinf:nfsmysqld
crm(live)configure#propertystonith-enabled=false
crm(live)configure#propertyno-quorum-policy=ignore
crm(live)configure#verify
crm(live)configure#commit
3)检测
#crm_mon
Lastupdated:ThuAug922:34:522012
Stack:openais
CurrentDC:node1.7ing.com-partitionwithquorum
Version:1.1.5-1.1.el5-
2Nodesconfigured,2expectedvotes
3Resourcesconfigured.
============
Online:[node2.7ing.comnode1.7ing.com]
nfs(ocf::heartbeat:Filesystem):Startednode1.7ing.com
vip(ocf::heartbeat:IPaddr):Startednode1.7ing.com
mysqld(lsb:mysqld):Startednode1.7ing.com
#crmnodestandy
#crm_mon
============
Lastupdated:ThuAug922:36:182012
Stack:openais
CurrentDC:node1.7ing.com-partitionwithquorum
Version:1.1.5-1.1.el5-
2Nodesconfigured,2expectedvotes
3Resourcesconfigured.
============
Nodenode1.7ing.com:standby
Online:[node2.7ing.com]
nfs(ocf::heartbeat:Filesystem):Startednode2.7ing.com
vip(ocf::heartbeat:IPaddr):Startednode2.7ing.com
mysqld(lsb:mysqld):Startednode2.7ing.com
Ⅸ nfs是什么系统
NFS是网络文件系统。
网络文件系统(NFS)是文件系统之上的一个网络抽象,来允许远程客户端以与本地文件系统类似的方式,来通过网络进行访问。虽然 NFS 不是第一个此类系统,但是它已经发展并演变成 UNIX系统中最强大最广泛使用的网络文件系统。NFS 允许在多个用户之间共享公共文件系统,并提供数据集中的优势,来最小化所需的存储空间。
NFS的工作原理
NFS的工作原理是使用客户端/服务器架构,由一个客户端程序和服务器程序组成。服务器程序向其他计算机提供对文件系统的访问,其过程称为输出。NFS客户端程序对共享文件系统进行访问时,把它们从NFS服务器中“输送”出来。文件通常以块为单位进行传输。其大小是8KB(虽然它可能会将操作分成更小尺寸的分片)。NFS传输协议用于服务器和客户机之间文件访问和共享的通信,从而使客户机远程地访问保存在存储设备上的数据。
Ⅹ NFS架构(转载)
1.为什么用共享存储
2.存储有哪些工具
3.共享存储应用场景有哪些
4.部署nfs共享存储
5.客户端尝试连接升腊培共享存储
什么是NFS?
NFS 是 Network File System 的缩写及网络文件系统。 NFS 主要功能是通过局域网络让不同局局的主机系统之间可以共享文件或目录。
NFS 系统和 Windows 网络共享、网络驱动器类似, 只不过 windows 用于局域网, NFS 用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统 FastDFS,glusterfs,HDFS
那么我们为什么要使用数据存储共享服务?
1.实现多台服务器之间数据共享
2.实现多台服务器之间数据一致
下面我将通过图解给大家展示集群需要共享存储服务的理由。
1.A 用户上传图片经过负载均衡,负载均衡将上传请求调度至 WEB1 服务器上。
2.B 用户访问 A 用户上传的图片,此时 B 用户被负载均衡调度至 WEB2 上,因为 WEB2 上没有这张图片,所以 B用户无法看到 A 用户传的图片
如果有共享存储的情况
1.A 用户上传图片无论被负载均衡调度至 WEB1 还是 WEB2, 最终数据都被写入至共享存储
2.B 用户访问 A 用户上传图片时,无论调度至 WEB1 还是 WEB2,最终都会上共享存储访问对应的文件,这样就可以访问到资源了
NFS工作原理
1.用户进程访问 NFS 客户端,使用不同的函数对数据进行处理
2.NFS 客户端通过 TCP/IP 的方式传递给 NFS 服务端
3.NFS 服务端接收到请求后,会先调用 portmap 进程进行端口映射。
4.nfsd 进程用于判断 NFS 客户端是否拥有权限连接 NFS 服务端。
5.Rpc.mount 进程判断客户端是否有对应的权限进行验证。
6.idmap 进程实现用户映射和压缩
7.最后 NFS 服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。
注意: rpc 是一个远吵唯程过程调用,那么使用 nfs 必须有 rpc 服务
1.nfs依赖于RPC服务来传递消息
2.NFS服务启动的端口号是随机的,启动之后会向本地的RCP注册
3.先启动RPC服务,再启动NFS服务
4.NFS和RPC之间的通讯是他们自己内部完成的,对于用户来说无感知
5.NFS客户端和服务端不会直接沟通,必须通过RPC服务传递消息
6.防火墙要开放RPC服务的端口
nfs 服务程序的配置文件为/etc/exports,需要严格按照共享目录的路径 允许访问的 NFS 客户端(共享权限参数)格式书写,定义要共享的目录与相应的权限,具体书写方式如下图所示
配置文件参数解释:
执行 man exports 命令,然后切换到文件结尾,可以快速查看如下样例格式:
nfs共享参数 参数作用
rw 读写权限
ro 只读权限
root_squash
当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的匿名用户(不常用)
no_root_squash
当 NFS 客户端以 root 管理员访问时,映射为 NFS 服务器的 root 管理员(不常用)
all_squash
无论 NFS 客户端使用什么账户访问,均映射为 NFS 服务器的匿名用户(常用)
no_all_squash
无论 NFS 客户端使用什么账户访问,都不进行压缩
sync
同时将数据写入到内存与硬盘中,保证不丢失数据
async
优先将数据保存到内存,然后再写入硬盘;这样效率更高,但可能会丢失数据
anonuid
配置 all_squash 使用,指定 NFS 的用户 UID,必须存在系统
anongid
配置 all_squash 使用,指定 NFS 的用户 UID,必须存在系统
写入配置文件:注意!IP地址和后面的小括号没有空格
创建数据目录和授权:
在使用 NFS 服务进行文件共享之前,需要使用 RPC(Remote Procere Call 远程过程调用服务将 NFS 服务器的IP 地址和端口号信息发送给客户端。因此,在启动 NFS 服务之前,需要先重启并启用 rpcbind 服务程序,同时都加入开机自启动
客户端安装nfs服务十分简单,只需要安装nfs软件包即可
安装完成后只需要启动rpcbind,不需要启动nfs
使用showmount命令查看nfs共享信息查询 NFS 服务器的远程共享信息,其输出格式为“共享的目录名称 允许使用客户端地址”。
挂载命令: 创建挂载目录
在 NFS 客户端创建一个挂载目录, 使用 mount 命令并结合-t 参数, 指定要挂载的文件系统的类型, 并在命令后面写上服务器的 IP 地址, 以及服务器上的共享目录, 最后需要写上要挂载到本地系统(客户端)的目录
查看是否挂载成功:
测试写入数据是否正常
写入开机自动挂载
卸载命令:注意!卸载的时候如果提示”umount.nfs: /nfsdir: device is busy”先切换到其他目录再卸载
强制卸载命令:
服务端配置:
客户端挂载:
测试读取:
写入测试:
服务端配置:
服务端创建用户及授权:
重启NFS服务:
更改目录授权:
客户端操作:
我们会发现依然可以写入,但是为了避免这种情况发生,建议客户端也创建相同uid gid的用户
参考博客
启动NFS会开启如下端口:
1)portmapper 端口:111 udp/tcp;
2)nfs/nfs_acl 端口:2049 udp/tcp;
3)mountd 端口:"32768--65535" udp/tcp
4)nlockmgr 端口:"32768--65535" udp/tcp
系统 RPC服务在 nfs服务启动时默认会给 mountd 和 nlockmgr 动态选取一个随机端口来进行通讯。
1.查看NFS启动后的端口
2.将随机的端口号设置固定
3.重启nfs和rpc服务
4.再次查看端口信息,发现端口号已经固定了
5.设置iptables
6.保存配置
如果设置了开机自启动,但是系统启动的时候NFS并没有提供服务,就会导致开机自检的时候卡在挂在那一步
NFS 存储优点
1.NFS 文件系统简单易用、方便部署、数据可靠、服务稳定、满足中小企业需求。
2.NFS 文件系统内存放的数据都在文件系统之上,所有数据都是能看得见
NFS 存储局限
1.存在单点故障, 如果构建高可用维护麻烦 web->nfs()->backup
2.NFS 数据明文, 并不对数据做任何校验。
3.客户端挂载 NFS 服务没有密码验证, 安全性一般(内网使用)
NFS 应用建议
1.生产场景应将静态数据尽可能往前端推, 减少后端存储压力
2.必须将存储里的静态资源通过 CDN 缓存 jpg\png\mp4\avi\css\js
3.如果没有缓存或架构本身历史遗留问题太大, 在多存储也无用
准备 3 台虚拟机服务器,并且请按照要求搭建配置 NFS 服务。
NFS 服务端(A)
NFS 客户端(B)
NFS 客户端(C)
1.在 NFS 服务端(A)上共享/data/w(可写)及/data/r(只读)
2.在 NFS 客户端(B/C)上进行挂载
环境准备