NFS系统write调用过程(三)

    NFS文件系统中WRITE操作比READ操作要复杂一些。READ操作中只需要将数据从服务器中读取到客户端的缓存页中就可以了,但是WRITE操作中客户端可能将数据写入到服务器的缓存页中,也可能写入到服务器的磁盘中。如果数据写入到服务器的缓存页中了,客户端还需要在适当的时候发起COMMIT请求将数据写入到服务器的磁盘中。

1.WRITE请求的结构

RFC1818规定了WRITE请求报文和应答报文的格式,请求报文格式如下:

      struct WRITE3args {
           nfs_fh3     file;    // 这是目标文件的文件句柄
           offset3     offset;  // 数据在文件中的偏移值
           count3      count;   // WRITE请求中数据长度
           stable_how  stable;  // 数据同步方式
           opaque      data<>;  // WRITE请求中的数据
      };
应答报文格式如下:

      struct WRITE3resok {
           wcc_data    file_wcc;        // 文件的属性
           count3      count;           // 写入到服务器的数据量
           stable_how  committed;       // 数据在服务器端的同步方式
           writeverf3  verf;            // 这是一个验证信息
      };

stable_how是数据同步方式,表示数据写入到服务器的缓存页中还是磁盘中,包含三个取值:

      enum stable_how {
           UNSTABLE  = 0,       // 不强求将数据和元数据写入磁盘中
           DATA_SYNC = 1,       // 数据必须写入磁盘中,元数据尽量写入磁盘中
           FILE_SYNC = 2        // 数据和元数据必须写入磁盘中
      };
请求报文中的stable_how表示客户端的请求方式,而应答报文中的stable_how表示服务器实际操作方式,对应关系如下:

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
NFS(Network File System)是一种用于在网络上共享文件的协议。您提到的是在Debian上设置NFS文件系统的步骤和命令。下面是一个简要的说明: 1. 首先,您需要在Debian服务器上安装NFS服务器软件包。您可以使用以下命令安装NFS服务器软件包(nfs-kernel-server): ```shell apt-get install -y nfs-kernel-server ``` 2. 在安装NFS服务器软件包时,rpcbind服务也会一起安装。您可以使用以下命令检查NFS服务器和rpcbind软件包的安装状态: ```shell dpkg -s nfs-kernel-server dpkg -s rpcbind ``` 3. 安装完成后,您需要配置NFS服务器以共享所需的目录。您可以编辑NFS服务器的配置文件(/etc/exports)并指定要共享的目录和允许访问的主机。例如,您可以将以下行添加到配置文件中以共享名为/webdata的目录: ```shell /webdata 192.168.100.100(rw,sync,no_subtree_check) ``` 其中,192.168.100.100是允许访问该目录的主机的IP地址。rw表示读写权限,sync表示同步写入,no_subtree_check表示不检查子目录。 4. 在配置文件更新后,您需要重新加载NFS服务器以应用更改。使用以下命令重新加载NFS服务器配置: ```shell exportfs -a ``` 5. 接下来,您可以在Centos8测试主机上挂载NFS共享目录。使用以下命令将NFS共享目录挂载到Centos8系统的指定目录(/clientwebdata): ```shell mount -t nfs 192.168.100.200:/webdata /clientwebdata ``` 6. 挂载完成后,您可以使用以下命令查看挂载的磁盘和文件NFS的相关信息: ```shell df -h ``` 希望这些信息对您有所帮助。如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值