我想在 OpenSolaris 上读写 ramdisk,以进行性能测试。测试针对的是网络传输,我想排除磁盘性能。我在 NFS 服务器(机器 A)上设置了 ramdisk,使用
mkfile -nv 1000m `pwd`/ramdisk
在通过 NFS 挂载到机器 B 上的目录中。读取 ramdisk 很顺利,但写入时会覆盖文件。然后我设置了一个 ramdisk,
ramdiskadm -a ramdisk1 1000m
我可以正常写入,但无法通过 NFS 访问。ramdisk 放在 /dev/ramdisk 上,它是 /devices/pseudo 的链接。我将 /devices/pseudo 添加到 /etc/dfs/sharetab 并将其安装在机器 B 上,没有出现错误,但机器 B 上的目录内容为空。
答案1
以下是您要做的事情的高级方案:
- 创建 ramdisk 设备(ramdiskadm)
- 使用文件系统格式化 ramdisk 设备(newfs 或 zpool create)
- 将 ramdisk 设备挂载到挂载点(挂载,或对于 ZFS 自动挂载)
- 通过 NFS 导出该挂载点(man export fs 或 zfs set sharenfs=on)
- 利润!
mkfile 不会创建 ramdisk,只会创建某些存储区域上的文件。由于您想测试性能,我看不出它有什么帮助。
答案2
一个更简单的解决方案:(感谢 Adam Leventhal 提供的这条小贴士)
在服务器上
share -F nfs -o rw /tmp
在客户端:
mkdir /tmpnfs
mount -o vers=4,rsize=32768,wsize=32768 server:/tmp /tmpnfs
其工作方式类似于内存文件系统。