目次
ビルド
takayuki@takayuki-VirtualBox:~/repos$ git clone https://github.com/nfs-ganesha/
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha$ git submodule update --init --recursive
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha/src$ sudo apt-get install g++ libboost-dev cmake make git doxygen build-essential libglu1-mesa-dev libc6-dev libkrb5-dev libgss-dev liburcu-dev bison flex libdbus-glib-1-dev libgirepository1.0-dev libjemalloc-dev libnfsidmap-dev libwbclient-dev libntirpc-dev librados-dev libkrb5-dev krb5-user libgssglue-dev libacl1 bison flex libnsl-dev
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha$ mkdir -p build
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha$ cd build/
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha/build$ cmake -DCMAKE_C_FLAGS="-Wno-error=unused-function -Wno-error=implicit-function-declaration" ../src
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha/build$ make
(…)
[100%] Building C object FSAL/FSAL_MEM/CMakeFiles/fsalmem.dir/mem_up.c.o
[100%] Linking C shared module libfsalmem.so
[100%] Built target fsalmem
アクセス
root@takayuki-VirtualBox:/var/log/ganesha# sudo apt install nfs-ganesha nfs-ganesha-vfs
/etc/ganesha/ganesha.conf
## Configure an export for some file tree
EXPORT
{
## Export Id (mandatory, each EXPORT must have a unique Export_Id)
Export_Id = 12345;
## Exported path (mandatory)
Path = /opt/srv;
## Pseudo Path (required for NFSv4 or if mount_path_pseudo = true)
Pseudo = /nfsshare;
## Restrict the protocols that may use this export. This cannot allow
## access that is denied in NFS_CORE_PARAM.
Protocols = 3,4;
## Access type for clients. Default is None, so some access must be
## given. It can be here, in the EXPORT_DEFAULTS, or in a CLIENT block
Access_Type = RW;
## Whether to squash various users.
Squash = No_Root_Squash;
## Allowed security types for this export
Sectype = sys;
CLIENT {
Clients = *;
Access_Type = RW;
}
## Exporting FSAL
FSAL {
Name = VFS;
}
}
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha/build$ sudo systemctl restart nfs-ganesha
takayuki@takayuki-VirtualBox:~/repos/nfs-ganesha/build$ sudo mount -vvv -t nfs -o vers=3 localhost:/opt/srv /mnt/nfs
性能測定
デフォルト
takayuki@takayuki-VirtualBox:/mnt$ sudo fio -filename=/mnt/nfs/test.txt -direct=1 -rw=write -bs=256k -filesize=128M -numjobs=5 -runtime=10 -group_reporting -name=test --ioengine=libaio -time_based
test: (g=0): rw=write, bs=(R) 256KiB-256KiB, (W) 256KiB-256KiB, (T) 256KiB-256KiB, ioengine=libaio, iodepth=1