mirror of https://github.com/status-im/consul.git
snapshot: some improvments to the snapshot process (#17236)
* snapshot: some improvments to the snapshot process Co-authored-by: trujillo-adam <47586768+trujillo-adam@users.noreply.github.com> Co-authored-by: Chris S. Kim <ckim@hashicorp.com>
This commit is contained in:
parent
40eefaba18
commit
48f7d99305
|
@ -0,0 +1,3 @@
|
|||
```release-note:improvement
|
||||
logging: change snapshot log header from `agent.server.snapshot` to `agent.server.raft.snapshot`
|
||||
```
|
|
@ -1056,7 +1056,7 @@ func (s *Server) setupRaft() error {
|
|||
log = cacheStore
|
||||
|
||||
// Create the snapshot store.
|
||||
snapshots, err := raft.NewFileSnapshotStoreWithLogger(path, snapshotsRetained, s.logger.Named("snapshot"))
|
||||
snapshots, err := raft.NewFileSnapshotStoreWithLogger(path, snapshotsRetained, s.logger.Named("raft.snapshot"))
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -53,6 +53,7 @@ func New(logger hclog.Logger, r *raft.Raft) (*Snapshot, error) {
|
|||
if err != nil {
|
||||
return nil, fmt.Errorf("failed to create snapshot file: %v", err)
|
||||
}
|
||||
logger.Debug("creating temporary file of snapshot", "path", archive.Name())
|
||||
|
||||
// If anything goes wrong after this point, we will attempt to clean up
|
||||
// the temp file. The happy path will disarm this.
|
||||
|
@ -112,7 +113,7 @@ func (s *Snapshot) Read(p []byte) (n int, err error) {
|
|||
}
|
||||
|
||||
// Close closes the snapshot and removes any temporary storage associated with
|
||||
// it. You must arrange to call this whenever NewSnapshot() has been called
|
||||
// it. You must arrange to call this whenever New() has been called
|
||||
// successfully. This is safe to call on a nil snapshot.
|
||||
func (s *Snapshot) Close() error {
|
||||
if s == nil {
|
||||
|
|
|
@ -20,7 +20,8 @@ If ACLs are enabled, a management token must be supplied in order to perform
|
|||
a snapshot save.
|
||||
|
||||
-> Note that saving a snapshot involves the server process writing the snapshot to a
|
||||
temporary file on-disk before sending that file to the CLI client. The default location
|
||||
temporary file on-disk before sending that file to the CLI client. Upon successful completion,
|
||||
Consul removes the temporary file. The default location of the temporary file
|
||||
can vary depending on operating system, but typically is `/tmp`. You can get more detailed
|
||||
information on default locations in the Go documentation for [os.TempDir](https://golang.org/pkg/os/#TempDir).
|
||||
If you need to change this location, you can do so by setting the `TMPDIR` environment
|
||||
|
@ -28,6 +29,7 @@ variable for the Consul server processes. Keep in mind that setting the environm
|
|||
the CLI client attempting to perform a snapshot save will have no effect. It _must_ be set in
|
||||
the context of the server process. If you're using Systemd to manage your Consul server
|
||||
processes, then adding `Environment=TMPDIR=/path/to/dir` to your Consul unit file will work.
|
||||
As a result of the Raft snapshot, Consul also saves one snapshot file at `data_dir/raft/snapshots`.
|
||||
|
||||
The table below shows this command's [required ACLs](/consul/api-docs/api-structure#authentication). Configuration of
|
||||
[blocking queries](/consul/api-docs/features/blocking) and [agent caching](/consul/api-docs/features/caching)
|
||||
|
|
Loading…
Reference in New Issue