1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

MacからLinodeへNFSマウントしてみた

Last updated at Posted at 2022-09-08

Linode(リノード)の仮想マシンにNFSサーバーをインストールし、MacからNFSマウントしてみた内容を共有します。

参照:https://www.linode.com/docs/guides/using-an-nfs-server-on-ubuntu2004/
(ここにLinodeの仮想マシン間のNFSのやり方が書いていたので、LinodeとMacでNFSをやってみました。)

NFSサーバーはLinode、NFSクライアントはMac

NFSサーバー : LinodeでUbuntu 20.04.5 LTS を選びました

$ lsb_release -a
Distributor ID:	Ubuntu
Description:	Ubuntu 20.04.5 LTS
Release:	20.04
Codename:	focal

Linodeで割り当てられたPublic IPアドレスを確認。
以下のcurlコマンドでLinode上のNFSサーバー用のIPを確認しておきます。

$ curl whatismyip.akamai.com
x.x.x.x
(このIPアドレスは以下「LINODE_IP_ADDR」として利用します。)

NFSクライアント : macOS(monterey)

$ sw_vers
ProductName:	macOS
ProductVersion:	12.5.1
BuildVersion:	21G83

MacのPublic IPアドレスを確認。
同様にcurlコマンドでMacのIPアドレス(NFSクライアント側)を確認しておきます。

$ curl whatismyip.akamai.com
y.y.y.y
(このIPアドレスは以下「CLIENT_IP_ADDR」として利用します。)

1. Linodeの設定(NFSサーバーを起動)

NFSサーバー用のパッケージをインストール

$ sudo apt update
$ sudo apt install nfs-kernel-server

NFSサーバーのStatus確認(activeになっていることを確認)

$ sudo systemctl status nfs-kernel-server.service
     nfs-server.service - NFS server and services
     Loaded: loaded (/lib/systemd/system/nfs-server.service; enabled; vendor preset: enabled)
    Drop-In: /run/systemd/generator/nfs-server.service.d
             └─order-with-mounts.conf
     Active: active (exited) since Mon 2022-08-29 04:09:56 UTC; 2h 29min ago
    Process: 912 ExecStartPre=/usr/sbin/exportfs -r (code=exited, status=0/SUCCESS)
    Process: 924 ExecStart=/usr/sbin/rpc.nfsd $RPCNFSDARGS (code=exited, status=0/SUCCESS)
   Main PID: 924 (code=exited, status=0/SUCCESS)

NFSサーバー に共有ディレクトリを作成

$ sudo mkdir -p /nfs/share/project1
$ sudo chown nobody:nogroup /nfs/share/project1
$ sudo chmod 777 /nfs/share/project1

NFS Export設定 : /etc/exportsを編集

$ vi /etc/exports

以下のラインを追加し保存
(’CLIENT_IP_ADDR’にはMacのIPアドレスを使用)

/nfs/share/project1 CLIENT_IP_ADDR(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

exportfsコマンドで設定を適用

$ sudo exportfs -a

NFSサーバーの共有ディレクトリ(/nfs/share/project1)が反映されていることを確認

$ sudo exportfs -v 

/nfs/share/project1
CLIENT_IP_ADDR(rw,wdelay,root_squash,no_subtree_check,sec=sys,rw,secure,root_squash,no_all_squash)

NFSサーバーのサービスを再起動

$ sudo systemctl restart nfs-kernel-server

ufwコマンドを使って、NFSクライアントのIPアドレスに対してNFSポート(2049)を許可します。

$ sudo ufw allow from CLIENT_IP_ADDR to any port nfs

CLIENT_IP_ADDRに対して2049ポートが許可されていることを確認

$ sudo ufw status

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Apache Full                ALLOW       Anywhere
2049                       ALLOW       CLIENT_IP_ADDR
OpenSSH (v6)               ALLOW       Anywhere (v6)
Apache Full (v6)           ALLOW       Anywhere (v6)

/etc/hosts.denyにすべてをDenyしてから、
/etc/osts.allowにNFSクライアントからのアクセスのみを許可する

$ /etc/hosts.deny
 portmap:ALL
 rpcbind mountd nfsd statd lockd rquotad : ALL

$ /etc/hosts.allow
 portmap: CLIENT_IP_ADDR
 rpcbind mountd nfsd statd lockd rquotad : CLIENT_IP_ADDR

これでCLIENT_IP_ADDRからLinodeへNFSマウントが可能になりました。


2. Mac側の設定(NFSクライアント設定)

Macに空のDirectoryを作成

$ sudo mkdir -p /nfs/mnt/project1

mount_nfsコマンドを使ってLinodeのNFSサーバーへマウントします。

$ sudo mount_nfs -o vers=4 -P LINODE_IP_ADDR:/nfs/share/project1 /nfs/mnt/project1

dfコマンドでLinodeのNFSサーバーにマウントされたか確認

$ df -h
LINODE_IP_ADDR:/nfs/share/project1  xGi xGi xGi x%  xxx  xxx  x%  /nfs/mnt/project1

3. NFSマウントの確認

Macでマウントポイント(/nfs/mnt/project1)にテキストファイルを作成してみます。

$ echo "Hey, I saved this text from my MacOS." > /nfs/mnt/project1/textfromMac.txt

Linodeからファイルが追加されていることを確認してみましょう。

$ cat /nfs/share/project1/textfromMac.txt
Hey, I saved this text from my MacOS.

LinodeのNFSサーバーにファイルが生成されていることが確認できました。

無事にMacからLinodeへNFSマウントができました。

まとめ

MacからLinodeへファイルのコピーはscpを使っていましたが、NFSマウントしてから両サイドからファイルの参照ができるようになり、より使いやすい環境になりました。
インターネット経由のNFSはセキュリティの懸念があるかもしれないので、通信の暗号化などについても調べてみたいと思いました。

Linodeとは

Linode (https://www.linode.com/) は Akamaiが提供するIaaS (Infrastructure as a Service) プラットフォームプロバイダーのサービスです。リノードと発音します。
Akamaiは2022年2月にLinode社の買収を発表しました。
https://www.akamai.com/ja/newsroom/press-release/akamai-to-acquire-linode
クラウドコンピューティングをよりシンプルに、手頃な価格で、誰もが利用できるようにすることで、イノベーションを加速することができます。
https://www.linode.com/ja/alternative-cloud-provider/

関連記事

アカマイ・テクノロジーズ合同会社のQiitaではLinode関連など開発者向けの記事を記載しております。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?