On Tuesday, December 9, 2025 2:42:30 AM Eastern Standard Time Robert Sander
wrote:
> Am 08.12.25 um 8:17 PM schrieb John Mulligan:
>
> > On Monday, December 8, 2025 11:31:48 AM Eastern Standard Time Robert
> > Sander
via ceph-users wrote:
>
>
>
> >> The SMB service and the SMB MGR module are far from being production
> >> ready. I only get errors when trying to use them on AMD64.
>
>
>
> > Do you have a moment to elaborate on what happened? What kind of errors
> > did
you get? Was this on a tentacle branch build or something else?
>
>
> It's all on the 20.2.0 GA release
> (69f84cc2651aa259a15bc192ddaabd3baba07489).
> Trying to setup an SMB service via dashboard completely fails with a red
> error message:
> Failed to execute smb
> Remote method threw exception: Traceback (most recent call last): File
> "/usr/share/ceph/mgr/smb/cli.py", line 18, in __call__ return
> self._func(*args, **kwargs) File "/usr/share/ceph/mgr/smb/module.py", line
> 184, in apply_resources resources.load_text(inbuf), File
> "/usr/share/ceph/mgr/smb/resources.py", line 759, in load_text return
> load(cast(Simplified, data)) File "/usr/share/ceph/mgr/smb/resources.py",
> line 767, in load return resourcelib.load(data) File
> "/usr/share/ceph/mgr/smb/resourcelib.py", line 678, in load return
> [resource.object_from_simplified(data)] File
> "/usr/share/ceph/mgr/smb/resourcelib.py", line 350, in
> object_from_simplified value = self._object_field_from_simplified(fld,
> data) File "/usr/share/ceph/mgr/smb/resourcelib.py", line 394, in
> _object_field_from_simplified return [ File
> "/usr/share/ceph/mgr/smb/resourcelib.py", line 395, in
> self._object_sub_from_simplified(subtype, v) for v in value File
> "/usr/share/ceph/mgr/smb/resourcelib.py", line 414, in
> _object_sub_from_simplified return _rconfig.object_from_simplified(data)
> File "/usr/share/ceph/mgr/smb/resourcelib.py", line 350, in
> object_from_simplified value = self._object_field_from_simplified(fld,
> data) File "/usr/share/ceph/mgr/smb/resourcelib.py", line 383, in
> _object_field_from_simplified inner_type = fld.inner_type() File
> "/usr/share/ceph/mgr/smb/resourcelib.py", line 243, in inner_type assert
> len(args) == 1 AssertionError
I will see if I can reproduce the error and file a tracker for the dashboard
team to look into.
> Trying to do the same on the command line I fail to interpret the
> documentation
or the help text:
>
> smb cluster create <cluster_id> <auth_mode:user|active-directory>
> [<domain_realm>] [<domain_join_ref>... Create an smb cluster
]
> [<domain_join_user_pass>...] [<user_group_ref>...] [<define_user_pass>...]
> [<custom_dns>...] [<placement>] [<clustering:default|always|never>]
> [<public_addrs>...] [<password_filter:none|base64>]
> [<password_filter_out:none|base64|hidden>] [--format <value>]
>
> How do I specify the arguments here?
>
> I want to setup local users and groups and some public IP addresses.
>
For your case it would be something like the following:
$ ceph smb cluster create bob user --define-user-pass=bob%Passw0rd1 --define-
user-pass=carol%Passw0rd2 --public-addrs=192.168.76.150/24 --public-
addrs=192.168.76.151/24
Only the cluster id ("bob" in my example) and the auth type ("user" in this
example) are mandatory. You are free to name the cluster what you want though,
not just "bob" :-)
Everything else we specify with double dashes (like `--define-user-pass`).
Arguments that start with `--domain` are for AD mode only and can be ignored
for your example.
Once you define a cluster you can then define shares, like in the following
examples:
$ ceph smb share create bob share1 cephfs --subvolume=g1/sv1 --path=/ --share-
name="Share One"
$ ceph smb share create bob share2 cephfs --path=/some/path/in/cephfs
Each share must specify a cluster id and a share id ("bob" and "share1" for
example). Then we must specify the cephfs we're using (often named "cephfs"
link in this example). Then we can optionally specify subvolume and/or
subvolumegroup / subvolume ~ this will automatillcaly resolve the path for you
so you do not need to run 'subvolume getpath' commands (unless you want to).
Finally --share-name specifies the name of the share that Windows and other SMB
clients would see. If left off it will use the share id value as the name.
The 2nd example above specifies a path outside of a subvolume in the cephfs and
leaves off the --share-name argument.
> I have good experience in setting up Samba and CTDB on CephFS but
> here the docs lack some information.
Thank you for the feedback. I prefer to work with the declarative resource
based approach myself so I probably didn't spend enough time on the imperative
commands in the docs. In the short term I can certainly make a quick PR that
shows some examples and hopefully that clarifies things a bit more.
>
> Regards
> --
> Robert Sander
> Linux Consultant
>
> Heinlein Consulting GmbH
> Schwedter Str. 8/9b, 10119 Berlin
>
> https://www.heinlein-support.de
>
> Tel: +49 30 405051 - 0
> Fax: +49 30 405051 - 19
>
> Amtsgericht Berlin-Charlottenburg - HRB 220009 B
> Geschäftsführer: Peer Heinlein - Sitz: Berlin
_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]