Manta die zweite

Der Beitrag wurde im September 2016 geschrieben


Der eine oder die andere erinnert sich vielleicht noch an meine Manta-Experimente. Nach einem weiteren missglückten Deployment mit fünf Nodes und neuen Erfahrungen beim Abräumen dieses Deployments habe ich jetzt ein möglicherweise funktionsfähiges Setup mit drei Nodes hinbekommen. Dazu habe ich die folgende Konfiguration erstellt:

Zunächst sollte man nach Durchlauf von "manta-deploy-dev" mit "manta-adm update -y labconfig.json nameservice" sicherstellen, dass die Nameservice-Zonen ausgerollt werden. Es kann auch sinnvoll sein, mit "manta-adm zk list" und falls erforderlich mit "manta-adm zk fixup" die Zookeeper-Konfiguration mit der Realität in Übereinstimmung zu bringen.

Erst danach sollte man dann mit "manta-adm update -y labconfig.json" die restliche Umgebung ausbringen. Das Ergebnis sieht dann so oder ähnlich aus:

 CN lnxp-5700  0f9444b1-878f-11e1-b950-00262d0cb730 10.64.244.42   
     SERVICE          SH ZONENAME                           
     authcache         1 18647eac-d375-44a8-94bb-bedc9f1098b7
     jobpuller         1 26d333d0-b3b0-4afb-942f-68c7dccb62dc
     jobsupervisor     1 fce8d38f-2369-43d5-ab37-7b939f0e59ba
     loadbalancer      1 8210fe4d-013b-410d-87bf-3fc00a35ba67
     marlin            1 e51c47f5-ffc5-46ba-8534-ff68f3402996
     marlin            1 0bfc558e-495e-4e0f-b97b-82eead87efc6
     marlin            1 a9ffe061-490f-46ba-9d87-7fde94fdec50
     marlin            1 7d131d9f-5a41-4c68-b0a0-93af674e6bec
     marlin            1 7c77447d-dc9f-48c4-be54-26c85cb6b40a
     marlin            1 547dc0b2-b239-4c6e-a85f-f404473d32ec
     marlin-dashboard  1 c6adca62-c0c9-4dde-a847-1a79db4e9b5d
     medusa            1 2660e9a8-a0f9-462e-b41c-31fdc41c6d01
     moray             3 8b1b8181-4bc4-48a1-bc10-04e702b67d50
     moray             1 6032b670-bd17-4aac-80af-3583c03a71da
     moray             2 1c79edad-02ff-4c93-97f4-728b19d3dd68
     nameservice       1 144c8552-832a-4bba-8d76-7758b1c5fe67
     postgres          3 c93a5e15-a451-467e-baaf-be4c62022155
     postgres          1 27799592-b941-46f5-9d86-26c15582657b
     postgres          2 f90a7671-b20b-4f41-8946-d2516633dbb4
     storage           1 2f17df85-a762-413a-9540-fe01a9a39aa5
     webapi            1 b134e0be-68bf-4996-b3d0-f149f7d499a6
 CN lnxp-6104  30a200bb-6af0-4ac1-83a8-75b4c147c4ce 10.64.244.45   
     SERVICE          SH ZONENAME                           
     authcache         1 3dfd2489-ca4d-45e2-91c0-fcb2125a17aa
     electric-moray    1 c7417140-b43f-422a-9dbb-317fd843f6b2
     jobpuller         1 f5cd32ef-f199-4437-b714-c578c9b1b1e0
     jobsupervisor     1 ee3c7c4f-c932-4905-8e6f-36a25d42db81
     loadbalancer      1 f0603a53-daa9-4bff-901a-2b17a4051318
     marlin            1 3188f665-601a-4e63-859d-202fce40b00d
     marlin            1 c9e8f1a9-8a02-4e76-8e46-72a4018c2bf7
     marlin            1 9af9aba8-bfac-4530-a911-d072d5e15292
     marlin            1 9060cc74-3940-4b06-8f9e-993629c7b4b1
     marlin            1 0cdaa375-3bc3-4620-9495-f4e195b317b0
     marlin            1 0548e76b-b5f6-4651-8a17-00cf122f1ce2
     moray             2 cd757049-988f-4854-8562-9844db191f09
     moray             1 00e76b92-122f-4969-b2a3-68abbf86b6b0
     moray             3 ebf98fee-3367-49c3-841b-460f4cf8942c
     nameservice       1 f3b06cdf-530d-48b3-adf9-467852190eaa
     ops               1 1135581c-d535-4895-bd84-1600a9d4ecd1
     postgres          1 913269a9-4989-40db-9b43-c53a0d4d6325
     postgres          2 44c6bafa-3e67-4e61-8876-2af1c2ed2b52
     postgres          3 9622df0f-9905-46e0-b2f8-a01f16b858b0
     storage           1 95c70a88-5060-4769-805b-75fe3144ae61
     webapi            1 96cc22ad-38c3-4eb6-8fd6-ddad373768e6 
CN lnxp-6105  6f13d529-4d2d-4afe-a81d-5fdc3a4a55ab 10.64.244.46   
     SERVICE          SH ZONENAME                           
     authcache         1 3395765f-d433-4ce0-8fb3-90ffaf9d9097
     jobpuller         1 d5cb2409-173b-4b41-a995-75c51f2cac23
     jobsupervisor     1 6c24b0d5-5304-412d-9f19-af60a26f54ec
     loadbalancer      1 b780202f-f876-4549-a1d5-b5f5dcc1fdbc
     madtom            1 7a7d38f5-7336-4ee8-b2cc-192094b12688
     marlin            1 a4b6c5b0-5f9c-4bdf-9939-c4e17be4fd62
     marlin            1 aa7611a8-4b18-414d-b23f-1d301b696b06
     marlin            1 d30d4a5f-4a20-42ad-9ec0-1659be32adfd
     marlin            1 9e790316-df88-4bff-920d-94c5668fca60
     marlin            1 ad17445d-1b2a-4ef4-a788-e5081687b09f
     marlin            1 f4efcc0f-997f-4cd6-afb3-55957e812956
     moray             3 e621643f-02aa-423b-b854-adbb99a3bf90
     moray             1 b797b49b-d64c-42ea-bb6f-03ee098aae77
     moray             2 925d70c2-1489-4d74-b0ca-e548d0ed11a7
     nameservice       1 47ecb807-cc6a-456f-a31b-a0d8238fea89
     postgres          1 45c55c41-014f-4287-8d55-77c2f5069469
     postgres          3 3055550e-4965-416d-8bdb-34662f30b0f7
     postgres          2 784ae69f-38a0-4e62-b78c-942b019be03c
     storage           1 5f68bfec-a4cc-4ecb-aacd-06c3c9a4e354
     webapi            1 bd4c6059-e0d0-4e0b-b3a5-cdb2ae1b97e7

Wie in Sample 3-Node Lab Manta Config for TESTING or DEV beschrieben, ist es übrigens durchaus sinnvoll, den Speicherverbrauch der Zonen einmal mit zonememstat zu überprüfen. Auf den drei Manta-Nodes sah das so aus:

[root@headnode (de-gt-1) ~]# sdc-oneachnode -n lnxp-5700 "zonememstat -a"
=== Output from 0f9444b1-878f-11e1-b950-00262d0cb730 (lnxp-5700):
                                 ZONE                                   ALIAS  RSS(MB)  CAP(MB)    NOVER  POUT(MB)
                               global                                       -      667        -        -         -
 134cce30-134b-40da-9387-cd35b3fb95af                          tb_couchbase_1     1344     4096        0         0
 ccfa7a23-6b2b-4b8a-a5e1-485331f243c4                    hostvolume-lnxp-5700       28     4096        0         0
 f3376e4b-7f78-4eeb-9d99-6a615c404f28                                 binder1      267     1024        0         0
 144c8552-832a-4bba-8d76-7758b1c5fe67      nameservice.de-gt.tgos.de-144c8552      247      512        0         0
 27799592-b941-46f5-9d86-26c15582657b       1.postgres.de-gt.tgos.de-27799592      845     2048        0         0
 f90a7671-b20b-4f41-8946-d2516633dbb4       2.postgres.de-gt.tgos.de-f90a7671     1289     2048        0         0
 c93a5e15-a451-467e-baaf-be4c62022155       3.postgres.de-gt.tgos.de-c93a5e15      906     2048        0         0
 6032b670-bd17-4aac-80af-3583c03a71da          1.moray.de-gt.tgos.de-6032b670      320     8192    16442      7450
 1c79edad-02ff-4c93-97f4-728b19d3dd68          2.moray.de-gt.tgos.de-1c79edad      290     8192      466       310
 8b1b8181-4bc4-48a1-bc10-04e702b67d50          3.moray.de-gt.tgos.de-8b1b8181      283     8192        7         9
 2f17df85-a762-413a-9540-fe01a9a39aa5          storage.de-gt.tgos.de-2f17df85      223      256        0         0
 18647eac-d375-44a8-94bb-bedc9f1098b7        authcache.de-gt.tgos.de-18647eac      333     1024        0         0
 b134e0be-68bf-4996-b3d0-f149f7d499a6           webapi.de-gt.tgos.de-b134e0be      758      768        0         0
 8210fe4d-013b-410d-87bf-3fc00a35ba67     loadbalancer.de-gt.tgos.de-8210fe4d      274      512        0         0
 fce8d38f-2369-43d5-ab37-7b939f0e59ba    jobsupervisor.de-gt.tgos.de-fce8d38f      232      256        0         0
 26d333d0-b3b0-4afb-942f-68c7dccb62dc        jobpuller.de-gt.tgos.de-26d333d0      227      256        0         0
 2660e9a8-a0f9-462e-b41c-31fdc41c6d01           medusa.de-gt.tgos.de-2660e9a8      243      512        0         0
 c6adca62-c0c9-4dde-a847-1a79db4e9b5d marlin-dashboard.de-gt.tgos.de-c6adca62      205      256        0         0
 7d131d9f-5a41-4c68-b0a0-93af674e6bec           marlin.de-gt.tgos.de-7d131d9f       22      256        0         0
 0bfc558e-495e-4e0f-b97b-82eead87efc6           marlin.de-gt.tgos.de-0bfc558e       22      256        0         0
 e51c47f5-ffc5-46ba-8534-ff68f3402996           marlin.de-gt.tgos.de-e51c47f5       22      256        0         0
 547dc0b2-b239-4c6e-a85f-f404473d32ec           marlin.de-gt.tgos.de-547dc0b2       22      256        0         0
 7c77447d-dc9f-48c4-be54-26c85cb6b40a           marlin.de-gt.tgos.de-7c77447d       22      256        0         0
 a9ffe061-490f-46ba-9d87-7fde94fdec50           marlin.de-gt.tgos.de-a9ffe061       22      256        0         0

Der Hinweis, die Moray-Zonen mit mehr Speicher zu versorgen, war/ist also durchaus angebracht.

 Madtom - das Dashboard, aus welchem die "Systemgesundheit" der verschiedenen Manta-Komponenten hervorgeht - sieht so aus:

Jetzt ist natürlich interessant, wie man überhaupt auf Manta zugreift. Hierzu lohnt sich ein Blick in die API-Dokumentation von Joyent. Nach Installation von manta, json und bunyan (via npm), müssen die erforderlichen Umgebungsvariablen für Manta gesetzt werden. Dabei kann man $MANTA_USER und $MANTA_KEY_ID direkt von den SDC-Variablen $SDC_ACCOUNT und $SDC_KEY_ID übernehmen. Hinzu kommt noch die $MANTA_URL. Wichtig dabei ist, dass Manta offenbar noch nicht in den Container Name Service integriert ist und deshalb auch nicht dessen Namensschema verwendet. Die verwendete Domain kann man ja in der Übersicht oben sehen. Im DNS, auf dem Loadbalancer oder (in meinem Fall) in der /etc/hosts, trägt man deshalb die externen IP-Adressen der Zonen ein, die den Loadbalancer-Dienst beherbergen. Da bei einer "on premise" Installation zunächst selbstsignierte Zertifikate eingespielt sind, ist es wichtig, auch noch die Variable $MANTA_TLS_INSECURE=1 zu setzen, da man sich sonst nicht verbinden kann:

root@ec057038-51aa-ed39-ffc9-dd88a5a20198:~# mls /hbloed/jobs
mls: AssertionError: undefined (object) is required
root@ec057038-51aa-ed39-ffc9-dd88a5a20198:~# mlogin
 * ERROR: DEPTH_ZERO_SELF_SIGNED_CERT
 * cleaning up resources...
mlogin: AssertionError: undefined (object) is required
root@ec057038-51aa-ed39-ffc9-dd88a5a20198:~# export MANTA_TLS_INSECURE=1
root@ec057038-51aa-ed39-ffc9-dd88a5a20198:~# mls /hbloed/
jobs/
public/
reports/
stor/