mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-17 20:00:23 +00:00
rbd: rbd-nbd logging the ceph-CSI way
- One logfile per device/volume - Add ability to customize the logdir, default: /var/log/ceph Note: if user customizes the hostpath to something else other than default /var/log/ceph, then it is his responsibility to update the `cephLogDir` in storageclass to reflect the same with daemon: ``` cephLogDir: "/var/log/mynewpath" ``` Signed-off-by: Prasanna Kumar Kalever <prasanna.kalever@redhat.com>
This commit is contained in:
parent
0be7024726
commit
682b3a980b
@ -69,6 +69,12 @@ parameters:
|
||||
# on supported nodes
|
||||
# mounter: rbd-nbd
|
||||
|
||||
# (optional) ceph client log location, eg: rbd-nbd
|
||||
# By default host-path /var/log/ceph of node is bind-mounted into
|
||||
# csi-rbdplugin pod at /var/log/ceph mount path. See docs/rbd-nbd.md
|
||||
# for available configuration options.
|
||||
# cephLogDir: /var/log/ceph
|
||||
|
||||
# (optional) Prefix to use for naming RBD images.
|
||||
# If omitted, defaults to "csi-vol-".
|
||||
# volumeNamePrefix: "foo-bar-"
|
||||
|
@ -274,6 +274,7 @@ func (ns *NodeServer) NodeStageVolume(
|
||||
volOptions.MapOptions = req.GetVolumeContext()["mapOptions"]
|
||||
volOptions.UnmapOptions = req.GetVolumeContext()["unmapOptions"]
|
||||
volOptions.Mounter = req.GetVolumeContext()["mounter"]
|
||||
volOptions.LogDir = req.GetVolumeContext()["cephLogDir"]
|
||||
|
||||
err = volOptions.Connect(cr)
|
||||
if err != nil {
|
||||
|
@ -296,6 +296,14 @@ func createPath(ctx context.Context, volOpt *rbdVolume, device string, cr *util.
|
||||
util.WarningLog(ctx, "failed to detect if image %q is thick-provisioned: %v", volOpt, err)
|
||||
}
|
||||
|
||||
if isNbd {
|
||||
if volOpt.LogDir == "" {
|
||||
volOpt.LogDir = defaultLogDir
|
||||
}
|
||||
mapArgs = append(mapArgs, "--log-file",
|
||||
getCephClientLogFileName(volOpt.VolID, volOpt.LogDir, "rbd-nbd"))
|
||||
}
|
||||
|
||||
cli := rbd
|
||||
if device != "" {
|
||||
// TODO: use rbd cli for attach/detach in the future
|
||||
|
@ -50,6 +50,7 @@ const (
|
||||
rbdImageWatcherSteps = 10
|
||||
rbdDefaultMounter = "rbd"
|
||||
rbdNbdMounter = "rbd-nbd"
|
||||
defaultLogDir = "/var/log/ceph"
|
||||
|
||||
// Output strings returned during invocation of "ceph rbd task add remove <imagespec>" when
|
||||
// command is not supported by ceph manager. Used to check errors and recover when the command
|
||||
@ -136,6 +137,7 @@ type rbdVolume struct {
|
||||
ReservedID string
|
||||
MapOptions string
|
||||
UnmapOptions string
|
||||
LogDir string
|
||||
VolName string `json:"volName"`
|
||||
MonValueFromSecret string `json:"monValueFromSecret"`
|
||||
VolSize int64 `json:"volSize"`
|
||||
@ -2002,3 +2004,16 @@ func (ri *rbdImage) addSnapshotScheduling(
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
// getCephClientLogFileName compiles the complete log file path based on inputs.
|
||||
func getCephClientLogFileName(id, logDir, prefix string) string {
|
||||
if prefix == "" {
|
||||
prefix = "ceph"
|
||||
}
|
||||
|
||||
if logDir == "" {
|
||||
logDir = defaultLogDir
|
||||
}
|
||||
|
||||
return fmt.Sprintf("%s/%s-%s.log", logDir, prefix, id)
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user