6
6
7
7
<!--
8
8
Copyright 2020 Joyent, Inc.
9
+ Copyright 2022 MNX Cloud, Inc.
9
10
-->
10
11
11
12
# Manta: a scalable, distributed object store
@@ -49,11 +50,10 @@ Community discussion about Manta happens in two main places:
49
50
* In the * #manta* IRC channel on the
50
51
[ Libera.chat IRC network] ( https://libera.chat/ ) .
51
52
52
-
53
53
## Dependencies
54
54
55
55
Manta is composed of a number of services that deploy on top of Joyent's
56
- [ Triton DataCenter] ( https://github.com/joyent /triton ) platform (just "Triton"
56
+ [ Triton DataCenter] ( https://github.com/TritonDataCenter /triton ) platform (just "Triton"
57
57
for short), which is also open-source. Triton provides services for operating
58
58
physical servers (compute nodes), deploying services in containers, monitoring
59
59
services, transmitting and visualizing real-time performance data, and a bunch
@@ -63,7 +63,6 @@ service monitoring.
63
63
Triton itself depends on [ SmartOS] ( http://smartos.org ) . Manta also directly
64
64
depends on several SmartOS features, notably ZFS.
65
65
66
-
67
66
## Building and Deploying Manta
68
67
69
68
Manta service images are built and packaged using the same mechanisms as
@@ -76,7 +75,6 @@ in VMware and then follow those instructions to deploy Manta on it.
76
75
If you want to deploy your own builds of Manta components, see "Deploying your
77
76
own Manta Builds" below.
78
77
79
-
80
78
## Repositories
81
79
82
80
This repository is just a wrapper containing documentation about Manta. Manta
@@ -85,52 +83,52 @@ some of the more important ones.
85
83
86
84
A full list of repositories relevant to Manta is maintained in a [ repo manifest
87
85
file] ( ./tools/jr-manifest.json ) in this repo. To more conveniently list those
88
- repos, you can use the [ ` jr ` tool] ( https://github.com/joyent /joyent-repos#jr ) .
86
+ repos, you can use the [ ` jr ` tool] ( https://github.com/TritonDataCenter /joyent-repos#jr ) .
89
87
90
88
The front door services respond to requests from the internet at large:
91
89
92
- * [ muppet] ( https://github.com/joyent /muppet ) : the haproxy-based "loadbalancer"
90
+ * [ muppet] ( https://github.com/TritonDataCenter /muppet ) : the haproxy-based "loadbalancer"
93
91
service
94
- * [ muskie] ( https://github.com/joyent /manta-muskie ) : the node.js-based "webapi"
92
+ * [ muskie] ( https://github.com/TritonDataCenter /manta-muskie ) : the node.js-based "webapi"
95
93
service, this is Manta's "Directory API"
96
- * [ buckets-api] ( https://github.com/joyent /manta-buckets-api ) : Node.js-based
94
+ * [ buckets-api] ( https://github.com/TritonDataCenter /manta-buckets-api ) : Node.js-based
97
95
"buckets-api" service, this is Manta's "Buckets API"
98
96
99
97
The metadata tiers for the Directory and Buckets APIs store the entire object
100
98
namespace (not object data) as well as backend storage system capacity:
101
99
102
- * [ manatee] ( https://github.com/joyent /manatee ) : the "postgres" service, a
100
+ * [ manatee] ( https://github.com/TritonDataCenter /manatee ) : the "postgres" service, a
103
101
high-availability postgres cluster using synchronous replication and automatic
104
102
fail-over
105
- * [ moray] ( https://github.com/joyent /moray ) : Node-based key-value store built on
103
+ * [ moray] ( https://github.com/TritonDataCenter /moray ) : Node-based key-value store built on
106
104
top of manatee. Also responsible for monitoring manatee replication topology
107
105
(i.e., which postgres instance is the master).
108
- * [ electric-moray] ( https://github.com/joyent /electric-moray ) : Node-based service
106
+ * [ electric-moray] ( https://github.com/TritonDataCenter /electric-moray ) : Node-based service
109
107
that provides the same interface as Moray, but which directs requests to one
110
108
or more Moray+Manatee * shards* based on hashing the Moray key.
111
- * [ buckets-mdapi] ( https://github.com/joyent /manta-buckets-mdapi ) : a Rust-based
109
+ * [ buckets-mdapi] ( https://github.com/TritonDataCenter /manta-buckets-mdapi ) : a Rust-based
112
110
API for managing all metadata for the Buckets API
113
- * [ buckets-mdplacement] ( https://github.com/joyent /manta-buckets-mdplacement ) : a
111
+ * [ buckets-mdplacement] ( https://github.com/TritonDataCenter /manta-buckets-mdplacement ) : a
114
112
Rust-based API for handling routing of Buckets API objects to appropriate
115
113
nodes in the storage tier.
116
114
117
115
The storage tier is responsible for actually storing bits on disk:
118
116
119
- * [ mako] ( https://github.com/joyent /manta-mako ) : the "storage" service, a
117
+ * [ mako] ( https://github.com/TritonDataCenter /manta-mako ) : the "storage" service, a
120
118
nginx-based server that receives PUT/GET requests from the front door services
121
119
to store object data on disk
122
- * [ minnow] ( https://github.com/joyent /manta-minnow ) : a Node-based agent that
120
+ * [ minnow] ( https://github.com/TritonDataCenter /manta-minnow ) : a Node-based agent that
123
121
runs inside storage instances to periodically report storage capacity to the
124
122
metadata tier
125
123
126
124
There are a number of services not part of the data path that are critical for
127
125
Manta's operation. For example:
128
126
129
- * [ binder] ( https://github.com/joyent /binder ) : hosts both ZooKeeper (used for
127
+ * [ binder] ( https://github.com/TritonDataCenter /binder ) : hosts both ZooKeeper (used for
130
128
manatee leader election and for group membership) and a Node-based DNS server
131
129
that keeps track of which instances of each service are online at any given
132
130
time
133
- * [ mahi] ( https://github.com/joyent /mahi ) : The "authcache" service for handling authn/authz.
131
+ * [ mahi] ( https://github.com/TritonDataCenter /mahi ) : The "authcache" service for handling authn/authz.
134
132
135
133
Most of the above components are * services* , of which there may be multiple
136
134
* instances* in a single Manta deployment. Except for the last category of
@@ -141,7 +139,6 @@ For more details on the architecture, including how these pieces actually fit
141
139
together, see the [ Architecture] ( ./docs/operator-guide/architecture.md ) section
142
140
of the Operator Guide.
143
141
144
-
145
142
## Deploying your own Manta Builds
146
143
147
144
As described above, as part of the normal Manta deployment process, you start
@@ -157,7 +154,7 @@ do this:
157
154
158
155
1 . Complete the Manta deployment procedure from the operator guide.
159
156
2 . Build a zone image for whatever zone you want to replace. See the
160
- instructions for building [ Triton] ( https://github.com/joyent /triton )
157
+ instructions for building [ Triton] ( https://github.com/TritonDataCenter /triton )
161
158
zone images. Manta zones work the same way. The output of this process
162
159
will be a zone ** image** , identified by uuid. The image is comprised of
163
160
two files: an image manifest (a JSON file) and the image file itself
@@ -184,7 +181,7 @@ do this:
184
181
If for some reason you want to avoid deploying the Joyent builds at all, you'll
185
182
have to follow a more manual procedure. One approach is to update the SAPI
186
183
configuration for whatever service you want (using sdc-sapi -- see
187
- [ SAPI] ( https://github.com/joyent /sdc-sapi ) ) * immediately after* running
184
+ [ SAPI] ( https://github.com/TritonDataCenter /sdc-sapi ) ) * immediately after* running
188
185
manta-init but before deploying anything. Note that each subsequent
189
186
"manta-init" will clobber this change, though the SAPI configuration is normally
190
187
only used for the initial deployment anyway. The other option is to apply the
@@ -198,7 +195,6 @@ components above. The other two kinds of components are the *platform* and
198
195
* agents* . Both of these procedures are documented in the Operator Guide,
199
196
and they work to deploy custom builds as well as the official Joyent builds.
200
197
201
-
202
198
## Contributing to Manta
203
199
204
200
To report bugs or request features, you can submit issues to the Manta project
@@ -208,7 +204,6 @@ you should contact Joyent support instead.
208
204
See the [ Contribution Guidelines] ( ./CONTRIBUTING.md ) for information about
209
205
contributing changes to the project.
210
206
211
-
212
207
## Design principles
213
208
214
209
Manta assumes several constraints on the data storage problem:
0 commit comments