온라인에서 찾아본 NFS 잠금 메커니즘에 대해 배우고 싶습니다. 사용 nfslockd
하지 않으면 rpc.lockd
우리가 할 수 있습니다. 하지만 데비안에는 패키지가 없습니다. 데비안에서 이 작업을 수행해야 한다면 누구든지 저를 도와주세요.
답변1
이전 버전의 NFS(v2/v3)는 잠금 없이 사용할 수 있습니다. 잠금을 지원하기 위해 nfsd가 있는 서버에서 별도의 잠금 데몬이 사용됩니다.
질문에 태그를 붙인 NFSv4의 경우 잠금은 프로토콜의 필수 부분이며 v4 서비스는 별도의 잠금 데몬을 사용하지 않습니다.
nfsv4 마운트가 있는 경우 로컬 파일 시스템에서와 마찬가지로 파일을 잠글 수 있어야 합니다.
귀하의 의견에 감사드립니다. 한 클라이언트가 파일을 사용하는 경우 첫 번째 클라이언트가 해당 파일을 해제할 때까지 다른 클라이언트가 해당 파일에 액세스할 수 없도록 서버 자체에서 파일을 잠그고 싶습니다. 이런 경쟁 상황을 피하고 싶습니다.
Unix는 파일 시스템이 아닌 클라이언트에 적용되는 권고 잠금을 사용합니다(Windows에서는 이를 선호함). 이는 모든 클라이언트가 잠금에 참여해야 함을 의미합니다.
클라이언트가 파일에 액세스하기 전에 잠금을 요청하면 모든 것이 잘 될 것입니다. 다른 클라이언트가 잠금을 해제하고 다른 클라이언트가 잠금을 획득한 후에만 가능합니다. fcntl
로컬 및 NFS 파일 시스템 모두 일반적으로 호출을 지원합니다.
보세요UNIX의 파일 잠금Wikipedia에 대한 배경 지식을 얻으십시오.
답변2
NFS 잠금은 NFS 프로세스의 일부입니다. 당신은 그것을 설치하지 않습니다. 또한 이것은 생각처럼 작동하지 않습니다. 이 기능을 사용하면 MUTEX 잠금이 모든 서버에 전달되지 않습니다. 내가 본 유일한 소프트웨어는 VERITAS입니다.
답변3
데비안에 대해 구체적으로 말할 수는 없지만 이것은 /etc/sysconfig/nfs
SLES 11.4의 내 파일입니다(내 생각에는 NFS v3을 사용하는 것 같습니다).
# # Path: Network/File systems/NFS server
# # Description: number of threads for kernel nfs server
# # Type: integer
# # Default: 4
# # ServiceRestart: nfsserver
#
# the kernel nfs-server supports multiple server threads
#
USE_KERNEL_NFSD_NUMBER="4"
# # Path: Network/File systems/NFS server
# # Description: use fixed port number for mountd
# # Type: integer
# # Default: ""
# # ServiceRestart: nfsserver
#
# Only set this if you want to start mountd on a fixed
# port instead of the port assigned by rpc. Only for use
# to export nfs-filesystems through firewalls.
#
MOUNTD_PORT=" xxx " set to port opened in firewall!
# # Path: Network/File systems/NFS server
# # Description: GSS security for NFS
# # Type: yesno
# # Default: yes
# # ServiceRestart: nfs nfsserver
#
# Enable RPCSEC_GSS security for NFS (yes/no)
#
NFS_SECURITY_GSS="no"
# # Path: Network/File systems/NFS server
# # Description: NFSv4 protocol support
# # Type: yesno
# # Default: yes
# # ServiceRestart: nfs nfsserver
#
# Enable NFSv4 support (yes/no)
#
NFS4_SUPPORT="no"
# # Path: Network/File systems/NFS server
# # Description: NFSv4 server minor version
# # Type: integer
# # Default: 0
# # ServiceRestart: nfsserver
#
# Select NFSv4 minor version for server to support (0, 1).
# If '1' is selected, both NFSv4.0 and NFSv4.1 will be supported.
NFS4_SERVER_MINOR_VERSION="0"
# # Path: Network/File systems/NFS server
# # Description: Network Status Monitor options
# # Type: string
# # Default: ""
#
# If a fixed port should be used to send reboot notification
# messages to other systems, that port should be given
# here as "-p portnumber".
#
SM_NOTIFY_OPTIONS="-p xxxxx" set to port opened in firewall
# # Path: Network/File systems/NFS server
# # Description: Always start NFS services
# # Type: yesno
# # Default: no
# # ServiceRestart nfs
#
# Always start NFS services (gssd, idmapd), not only if
# there are nfs mounts in /etc/fstab. This is likely to be
# needed if you use an automounter for NFS.
#
NFS_START_SERVICES=""
# # Path: Network/File systems/NFS server
# # Description: Port rpc.statd should listen on
# # Type: integer
# # Default: ""
# # ServiceRestart: nfsserver
#
# Statd will normally choose a random port to listen on and
# SuSE-Firewall is able to detect which port and allow for it.
# If you have another firewall, you may want to set a fixed
# port number which can then be opened in that firewall.
#
STATD_PORT="xxxxx" set to port opened in firewall
# # Path: Network/File systems/NFS server
# # Description: Hostname used by rpc.statd
# # Type: string
# # Default: ""
# # ServiceRestart: nfsserver
#
# statd will normally use the system hostname in status
# monitoring conversations with other hosts. If a different
# host name should be used, as can be useful with fail-over
# configurations, that name should be given here.
#
STATD_HOSTNAME=""
# # Path: Network/File systems/NFS server
# # Description: TCP Port that lockd should listen on
# # Type: integer
# # Default: ""
# # ServiceRestart: nfsserver
#
# Lockd will normally choose a random port to listen on and
# SuSE-Firewall is able to detect which port and allow for it.
# If you have another firewall, you may want to set a fixed
# port number which can then be opened in that firewall.
# lockd opens a UDP and a TCP port. This setting only affect
# the TCP port.
#
LOCKD_TCPPORT="xxxxx" set to port opened in firewall
# # Path: Network/File systems/NFS server
# # Description: UDP Port that lockd should listen on
# # Type: integer
# # Default: ""
# # ServiceRestart: nfsserver
#
# Lockd will normally choose a random port to listen on and
# SuSE-Firewall is able to detect which port and allow for it.
# If you have another firewall, you may want to set a fixed
# port number which can then be opened in that firewall.
# lockd opens a UDP and a TCP port. This setting only affect
# the UDP port.
#
LOCKD_UDPPORT="xxxxx" set to port opened in firewall
# # Path: Network/File systems/NFS server
# # Description: Lease time for NFSv4 leases
# # Type: integer
# # Default: ""
#
# Set the lease time for the NFSv4 server. This allows new locks
# to be taken sooner after a server restart, so it is useful for
# servers which need to recover quickly after a failure, particularly
# in fail-over configurations. Reducing the lease time can be a
# problem is some clients connect over high latency networks.
# The default is 90 seconds. A number like 15 might be appropriate
# in a fail-over configuration with all clients on well connected
# low latency links.
NFSV4LEASETIME=""
# # Path: Network/File systems/NFS server
# # Description: Alternate mount point for rpc_pipefs filesystem
# # Type: string
# # Default: ""
#
# In a high-availabilty configuration it is possible that /var/lib/nfs
# is redirected so some shared storage and so it is not convenient to
# mount the rpc_pipefs filesystem at /var/lib/nfs/rpc_pipefs. In that
# case an alternate mount point can be given here.
RPC_PIPEFS_DIR=""
# # Path: Network/File systems/NFS server
# # Description: Options for svcgssd
# # Type: string
# # Default: ""
#
# Normally svcgssd does not require any option. However in a
# high-availabilty configuration it can be useful to pass "-n"
# to guide the choice of default credential. To allow for that
# case or any other requiring options ot svcgssd, they can
# be specified here.
SVCGSSD_OPTIONS=""
# # Path: Network/File systems/NFS server
# # Description: Extra options for nfsd
# # Type: string
# # Default: ""
#
# This setting allows extra options to be specified for NFSD, such as
# -H <shared_hostname> in a high-availability configuration.
NFSD_OPTIONS=""
# # Path: Network/File systems/NFS server
# # Description: Extra options for gssd
# # Type: string
# # Default: ""
#
# Normally gssd does not require any options. In some circumstances,
# -n, -l or other options might be useful. See "man 8 rpc.gssd" for
# details. Those options can be set here.
GSSD_OPTIONS=""
# # Path: Network/File systems/NFS server
# # Description: Extra options for mountd
# # Type: string
# # Default: ""
#
# Normally mountd does not require any options. In some circumstances,
# -n, -t, -g or other options might be useful. See "man 8 rpc.mountd" for
# details. Those options can be set here.
# -p or -N should be set using MOUNTD_PORT or NFS4_SUPPORT rather than
# this option.
MOUNTD_OPTIONS=""
# # Path: Network/File systems/NFS server
# # Description: Avoid DNS lookups for kerberos principal
# # Type: yesno
# # Default: no
# # ServiceRestart: gssd
#
# Avoid DNS lookups when determining kerberos identity
# of NFS server (yes/no)
# "yes" is safest, but "no" might be needed to preserve
# correct behaviour at sites that don't use
# Fully Qualified Domain Names when mounting NFS Shares.
#
NFS_GSSD_AVOID_DNS="no"
"nfs 잠금 데몬"은 설치된 nfs 패키지에 기본적으로 있어야 하며 제대로 작동해야 합니다. NFS에 대한 종속성은 rpc.mountd
및 가 있는 rpc.statd
RPC 입니다 rpc.lockd
. 따라서 NFS가 올바르게 설치된 경우(및 RPC 및 Portmap과 같이 필요한 종속성) lockd
방화벽을 끄거나 정적 포트를 구성 및 지정하는 한 작동해야 합니다 mountd
. 정적 포트를 지정하지 않으면 NFS는 이러한 포트를 선택합니다.무작위로[시작하는 동안] 매번. 방화벽(보통 기본적으로 켜져 있음)을 사용하면 무작위로 선택된 포트 번호를 고려할 수 없습니다.잠금메커니즘이 매번 작동하지 않습니다.
내 정보는 NFSv4에는 적용되지 않습니다.