Warehouse scale server repair, more benign than borg.
Bynar is an open source system for automating server maintenance across the datacenter. Bynar builds upon many years of experience automating the drudgery of server repair. The goal is to have the datacenter maintain itself. Large clusters these days require lots of maintenance. Cassandra, Ceph, Gluster, Hadoop and others all require quick replacement of server parts as they break down or the cluster becomes degraded. The problem is that as your cluster grows you generally need to have more people to maintain them. Bynar hopes to break this cycle and free your time up so your clusters can scale to ever greater sizes without requiring more people to maintain them.
The project is divided into different binaries that all communicate over protobuf:
- disk-manager: This program handles adding and removing of disks from a server
- dead-disk-detector: This program handles detection of failed hard drives, files a ticket
for a datacenter technician to replace the drive, waits for resolution of the ticket and
then makes an API call to
disk-manager
to add the new disk back into the server. - client: Enables you to manually make API calls against
disk-manager
- parallel-deploy: This is a tool to quickly deploy a cluster of ceph osds.
- Create your configuration file. The utility takes json config
information. Edit the
/etc/bynar/config.json
file to configure it. An optional proxy field can be configured to send JIRA REST API requests through. Fields for this file are:
{
"db_location": "/etc/bynar/disks.sqlite3",
"proxy": "https://my.proxy",
"manager_host": "localhost",
"manager_port": 5555,
"jira_user": "test_user",
"jira_password": "user_password",
"jira_host": "https://tickets.jira.com",
"jira_ticket_assignee": "username",
"jira_issue_type": "3",
"jira_priority": "4",
"jira_project_id": "MyProject",
"jira_ticket_assignee": "assignee_username"
}
- Top level is the dead disk detector
- api is the protobuf api create
- disk-manager is the service that handles adding and removing disks
- client is the cli client to make RPC calls to disk manager or dead disk detector
- parallel-deploy is a utility to quickly deploy a ceph osd cluster in parallel.
Deploy 1000 osds in the time it takes to deploy 1 manually.
- After building bynar from source or downloading prebuilt packages
launch
disk-manager
,dead-disk-detector
on every server you want maintained.
This community repository hosts all information about building Bynar from source, how to contribute code and documentation, who to contact about what, etc.
If you want to build Bynar:
$ curl https://sh.rustup.rs -sSf | sh
$ cargo build --release
- libzmq3-dev 4.1 or higher
- protobuf 2.5 or higher
- librados # ceph jewel or higher
- libatasmart
- openssl-dev
If you need support, start by checking the issues page. If that doesn't answer your questions, or if you think you found a bug, please file an issue.
That said, if you have questions, reach out to us communication.