{"id":19670533,"url":"https://github.com/laansdole/unix-sysadm-minio","last_synced_at":"2026-05-13T18:33:23.333Z","repository":{"id":188026695,"uuid":"677971778","full_name":"LaansDole/unix-sysadm-minio","owner":"LaansDole","description":"COSC2156 Unix Systems Administration and Programming (Linux)","archived":false,"fork":false,"pushed_at":"2023-08-16T18:01:45.000Z","size":728,"stargazers_count":1,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-01-10T03:35:22.503Z","etag":null,"topics":["linux","minio","unix"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/LaansDole.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-08-13T09:01:31.000Z","updated_at":"2024-09-25T01:53:31.000Z","dependencies_parsed_at":"2023-09-06T09:30:46.584Z","dependency_job_id":null,"html_url":"https://github.com/LaansDole/unix-sysadm-minio","commit_stats":null,"previous_names":["laansdole/unix-sysadm-minio"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaansDole%2Funix-sysadm-minio","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaansDole%2Funix-sysadm-minio/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaansDole%2Funix-sysadm-minio/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/LaansDole%2Funix-sysadm-minio/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/LaansDole","download_url":"https://codeload.github.com/LaansDole/unix-sysadm-minio/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":240980801,"owners_count":19888343,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux","minio","unix"],"created_at":"2024-11-11T17:06:34.208Z","updated_at":"2026-05-13T18:33:23.295Z","avatar_url":"https://github.com/LaansDole.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"![header image](assets/cosc2156.png)\n\n# COSC2156 Unix Systems Administration and Programming (Linux) - MinIO Storage\n#### Project Start Date: 04/08/2023\n#### Project End Date: 18/08/2023\n#### Contribution (Saigon 11):\n- Do Le Long An (s3963207)\n- Vo Nguyen Khoi (s3891987)\n\n## Assessment Details\n\nProject should be built on a Unix system, either a bare metal, VM, usb-live (remember this might not be preserved between boots).  Remember this is a UNIX SYS ADMIN course, so the point of the exercise is to install on an existing unix OS.  The choice of Unix installation may constrain some features of installation, for example you may or may not be able to make an installation on a 'live' system preserve between reboots, if using a VM you may be limited in broader internet access.\n\n## Project Background\n\n[![MinIO](https://raw.githubusercontent.com/minio/minio/master/.github/logo.svg?sanitize=true)](https://min.io)\n\nMinIO is a high-performance, S3 compatible object store. It is built for\nlarge scale AI/ML, data lake and database workloads. It runs on-prem and\non any cloud (public or private) and from the data center to the edge.\n\nThis README provides quickstart instructions on running MinIO on Google Cloud Platform (GCP) and VirtualBox Ubuntu. View more [here](https://github.com/minio/minio/#readme)\n\n![MinIO on different platforms](assets/MinIO-Platforms.png)\n\n## Project Demo on GNU/Linux (VirtualBox Ubuntu)\nUse the following command to run a standalone MinIO server on Linux hosts running 64-bit Intel/AMD architectures.\n\n1. Elevate to Superuser (root) Mode and Navigate to Home Directory:\n```sh\nsudo -s\ncd ~\n```\n2. Download and Prepare MinIO Binary:\n```sh\nwget https://dl.min.io/server/minio/release/linux-amd64/minio\nchmod +x minio\n```\n3. Start MinIO Server with the Default Storage Location (Optional):\n```sh\n./minio server /minio\n```\n4. Check MinIO Binary Location and Move MinIO Binary to System Bin Directory::\n```sh \nwhich minio\nmv minio /usr/local/bin\n```\n5. Create a Directory for MinIO Data and Start the Server:\n```sh\nmkdir ~/minio\nminio server ~/minio --console-address :9090\n```\n***You should see the screen as below:***\n```sh\nMinIO Object Storage Server\nCopyright: 2015-2023 MinIO, Inc.\nLicense: GNU AGPLv3 \u003chttps://www.gnu.org/licenses/agpl-3.0.html\u003e\nVersion: RELEASE.2023-08-09T23-30-22Z (go1.19.12 linux/amd64)\n\nStatus:         1 Online, 0 Offline. \nS3-API: http://10.0.2.15:9000  http://172.17.0.1:9000  http://127.0.0.1:9000       \nRootUser: minioadmin \nRootPass: minioadmin \n\nConsole: http://10.0.2.15:9090 http://172.17.0.1:9090 http://127.0.0.1:9090    \nRootUser: minioadmin \nRootPass: minioadmin \n\nCommand-line: https://min.io/docs/minio/linux/reference/minio-mc.html#quickstart\n   $ mc alias set myminio http://10.0.2.15:9000 minioadmin minioadmin\n\nDocumentation: https://min.io/docs/minio/linux/index.html\n```\n![MinIO Console](assets/MinIO-Ubuntu-Console.png)\nThe following table lists supported architectures. Replace the `wget` URL with the architecture for your Linux host.\n\n| Architecture                   | URL                                                        |\n| --------                       | ------                                                     |\n| 64-bit Intel/AMD               | \u003chttps://dl.min.io/server/minio/release/linux-amd64/minio\u003e   |\n| 64-bit ARM                     | \u003chttps://dl.min.io/server/minio/release/linux-arm64/minio\u003e   |\n| 64-bit PowerPC LE (ppc64le)    | \u003chttps://dl.min.io/server/minio/release/linux-ppc64le/minio\u003e |\n| IBM Z-Series (S390X)           | \u003chttps://dl.min.io/server/minio/release/linux-s390x/minio\u003e   |\n\nThe MinIO deployment starts using default root credentials `minioadmin:minioadmin`. You can test the deployment using the MinIO Console, an embedded web-based object browser built into MinIO Server. You can use the Browser to create buckets, upload objects, and browse the contents of the MinIO server.\n\nYou can also connect using any S3-compatible tool, such as the MinIO Client `mc` commandline tool. See [Test using MinIO Client `mc`](#test-using-minio-client-mc) for more information on using the `mc` commandline tool. For application developers, see \u003chttps://min.io/docs/minio/linux/developers/minio-drivers.html\u003e to view MinIO SDKs for supported languages.\n\n## Project Testing on GNU/Linux (VirtualBox Ubuntu)\n1. To see the structure of the MinIO storage directory, use the `tree` command with the `-h` flag on the MinIO directory:\n```sh\ntree -h ~/minio\n```\n2. Download and Prepare MinIO Client (mc) Binary:\nDownload the MinIO Client (mc) binary for Linux AMD64, make it executable, and move it to the system's bin directory:\n```sh\nwget https://dl.min.io/client/mc/release/linux-amd64/mc\nchmod +x mc\nmv mc /usr/local/bin/mc\n```\n3. Configure MinIO Client (mc) Alias:\nSet an alias named local for the MinIO server using the mc alias set command. Replace http://10.0.2.15:9000 with the actual MinIO server address, and minioadmin with your ***access key*** and ***secret key***:\n```sh\nmc alias set local http://10.0.2.15:9000 minioadmin minioadmin\n```\n4. Retrieve MinIO Server Information and List Objects in MinIO Storage:\n```sh\nmc admin info local\nmc ls -r local\n```\n\n\n## Project Demo MinIO distributed on GNU/Linux (GCP Ubuntu)\nUse the following command to run a distributed MinIO object storage system on a GCP cloud server. \n1. Create GCP VM instances (repeat at least 2 times)\n![1](https://github.com/LaansDole/unix-sysadm-MinIO/assets/88642920/69154cca-6e4b-4521-bd7d-e9319d8b3764)\n\n2. Attach block devices to VM instances (repeat for each node)\n![2](https://github.com/LaansDole/unix-sysadm-MinIO/assets/88642920/0d3b45af-426c-476b-8c39-7f7289dae7e9)\n\n3. Make an XFS file system on each of the attached block devices and label them\n\n```sh\nmkfs.xfs -f /dev/sdb -L DISK1\nmkfs.xfs -f /dev/sdc -L DISK2\n```\n4. Create mount-points for the block devices\n```sh\nmkdir /mnt/disk1\nmkdir /mnt/disk2\n```\n\n5. Mount the block devices\n```sh\nmount /dev/sdb /mnt/disk1\nmount /dev/sdc /mnt/disk2\n```\n\n6. Edit the file system configuration so that the drives are mounted correctly upon VM restart\n```sh\nnano /etc/fstab\n\n# \u003cfile system\u003e  \u003cmount point\u003e  \u003ctype\u003e  \u003coptions\u003e         \u003cdump\u003e  \u003cpass\u003e\nLABEL=DISK1      /mnt/disk1     xfs     defaults,noatime  0       2\nLABEL=DISK2      /mnt/disk2     xfs     defaults,noatime  0       2\n\n```\n\n7. Edit the domain name resolver to accommodate MinIO expansion notation\n```sh\nnano /etc/hosts\n\nexternal-ip-1 minio1\nexternal-ip-2 minio2\n\n```\n8. Download and prepare MinIO binary\n```sh\nwget https://dl.min.io/server/minio/release/linux-amd64/archive/minio_20230707071357.0.0_amd64.deb -O minio.deb\nsudo dpkg -i minio.deb\n\n```\n\n9. Run MinIO\n```sh\nminio server --console-address \":9090\" \"http://minio{1...2}/mnt/disk{1...2}/minio\"\n\n```\n\n10. Open MinIO management console\nGo to your browser and supply the external-ip of one of the nodes along with the port 9090 like so:\nhttp://34.116.150.222:9090\n\n## Project Demo MinIO quickstart on GNU/Linux Docker (GCP Ubuntu Docker)\n1. Install Docker\n```sh\nminio server --console-address \":9090\" \"http://minio{1...2}/mnt/disk{1...2}/minio\"\n\n```\n2. Docker run MinIO\n```sh\ndocker run -p 9000:9000 -d -p 9090:9090 -e \"MINIO_ROOT_USER=minioadmin\" -e \"MINIO_ROOT_PASSWORD=minioadmin\" quay.io/minio/minio server /data --console-address \":9090\"\n\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaansdole%2Funix-sysadm-minio","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flaansdole%2Funix-sysadm-minio","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flaansdole%2Funix-sysadm-minio/lists"}