NFS-Ganeshaお試し

投稿者: | 2025年7月21日

ビルド

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

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です