Michael,
The short is answer is “no” -- IP address change after restart should not affect normal file system operations, except for the web UI reporting, and the time it takes for the file system to transition to operational state.
Presently chunk servers’ addresses {IP, port} are used as unique chunk server identifiers by chunk inventory synchronization protocol. When IP address (or set of hosted chunks) changes at the time when chunk and meta server are not communicating,
the chunk inventory protocol detects that and falls back to full (instead of partial) chunk inventory synchronization at the time chunk server re-connects back to the meta server. With full inventory synchronization chunk server transmits to the meta server
information about all available chunks. With large number of chunks full inventory synchronization can consume noticeable amount of wall and CPU time.
The meta server’s knowledge of chunk servers chunk inventory is persistent — it is stored in the transaction log and checkpoint, and replicated to other meta server nodes in the case when redundant meta server nodes configured. The primary goal
of partial chunk inventory synchronization is to minimize file system swichower time to backup meta server node when primary meta server node becomes unavailable, and chunk servers and clients have to talk to a different meta server node that becomes primary.
The chunk server IP address by default is assigned by chunk server, and updated every time chunk server connects to the meta server. The IP address is obtained by calling getsockname() on the meta server connection socket, i.e. local IP address
as perceived by the chunk server.
Adding the following line to the chunk server’s configuration [and restarting chunk server] changes the default IP address assignment behavior:
chunkServer.hostname = 0.0.0.0
In this mode, meta server obtains chunk server IP by invoking getpeername() with the chunk server connection socket. This mode is intended to handle the cases with NAT between chunk, meta server, and clients, when the “local" IP address obtained
by the default method cannot be used by clients to connect to the chunk servers (for example Kubernetes).
Thank you,
— Mike.