Ви шукаєте програмне забезпечення для зберігання об’єктів для розміщення на своєму сервері?
Я думаю, так?
Існує багато хмарних сховищ об’єктів, таких як AWS S3 та інші, про які я згадував тут. Однак якщо вам потрібно розмістити дані на сервері, MinIO може допомогти у ваших центрах обробки даних.
MiniIO це популярне програмне забезпечення для зберігання розподілених об’єктів із відкритим кодом і сумісне з S3. Він готовий для корпоративних клієнтів і відомий своєю високою продуктивністю.
Ви можете використовувати MinIO від простої веб-програми до великих робочих навантажень розподілу даних для програм аналітики та машинного навчання. Це може допомогти в багатьох випадках використання.
- Стандартне сховище для плоских файлів
- Багатохмарний розподіл даних
- Аварійного відновлення
- Аналітика даних
Це громіздке програмне забезпечення?
Ні, це лише близько 50 МБ і підходить для Kubernetes. Він записує дані та метадані як об’єкт. Це усуває залежність від наявності додаткової бази даних або програмного забезпечення для зберігання метаданих і підвищення продуктивності.
Наведена нижче архітектура з їх офіційного сайту.
Давайте дослідимо деякі особливості, які варто відзначити.
- Висока продуктивність – говорить назва. Він здатний читати/записувати зі швидкістю ~170 ГБ/с. Це багато!
- Масштабований – використовуйте кластеризацію та масштабуйте за потреби
- Хмарно-рідний
- Захист даних за допомогою методу Erasure code
- Підтримується кілька шифрувань, включаючи AES-CBC, AES-256-GCM, ChaCha20
- Сумісний із звичайним KMS
- Програма та ідентифікатор користувача
- Сповіщення про подію
- Об’єднання за допомогою etcd і CoreDNS
MinIO — хороший вибір для програмно визначеного сховища. Давайте розберемося, як це зробити.
Встановлення сервера MinIO
Ти можеш встановити на Linux, Windows, macOS і через Kubernetes. Бажаєте будувати через джерело? Звичайно, ви можете це зробити, якщо у вас встановлено Golang.
Для цієї демонстрації я встановлю CentOS, яка розміщена на Каматера.
- Увійти на сервер
- Створіть папку під потрібною файловою системою. Можливо, міні-сервер
- Перейдіть до новоствореної папки та виконайте наведену нижче команду wget
wget https://dl.min.io/server/minio/release/linux-amd64/minio
Він завантажить бінарний файл і має виглядати так.
-rw-r--r-- 1 root root 48271360 Oct 18 21:57 minio
Зробіть файл виконуваним за допомогою команди chmod
chmod 755 minio
Давайте запустимо MinIO як сервер.
./minio server /data &
/data, згадане вище, є файловою системою, де MinIO зберігатиме об’єкти.
Запуск відбувається швидко, і ви повинні побачити інформацію про запуск, наведену нижче.
Endpoint: http://xx.71.141.xx:9000 http://127.0.0.1:9000 AccessKey: minioadmin SecretKey: minioadmin Browser Access: http://xx.71.141.xx:9000 http://127.0.0.1:9000 Command-line Access: https://docs.min.io/docs/minio-client-quickstart-guide $ mc alias set myminio http://xx.71.141.xx:9000 minioadmin minioadmin Object API (Amazon S3 compatible): Go: https://docs.min.io/docs/golang-client-quickstart-guide Java: https://docs.min.io/docs/java-client-quickstart-guide Python: https://docs.min.io/docs/python-client-quickstart-guide JavaScript: https://docs.min.io/docs/javascript-client-quickstart-guide .NET: https://docs.min.io/docs/dotnet-client-quickstart-guide Detected default credentials 'minioadmin:minioadmin', please change the credentials immediately using 'MINIO_ACCESS_KEY' and 'MINIO_SECRET_KEY'
Давайте отримаємо доступ до MinIO у браузері за допомогою облікових даних за замовчуванням – minioadmin:minioadmin
Інтерфейс дуже акуратний і чистий, але перш за все, давайте змінимо облікові дані за замовчуванням, оскільки це створює ризик. Немає можливості змінити облікові дані адміністратора через браузер, але змінні середовища.
Щоб змінити облікові дані MinIO за замовчуванням, ми експортуємо експорт доступу та секретний ключ, як показано нижче, і запустимо MinIO.
export MINIO_ACCESS_KEY=techukraine.net export MINIO_SECRET_KEY=geekpassword ./minio server /data &
Тепер він не повинен скаржитися на попередження про виявлення облікових даних за умовчанням.
Давайте спробуємо завантажити кілька файлів.
- Натисніть значок + унизу праворуч і створіть відро
- Я завантажив тестовий файл, і його одразу було видно у браузері
і на сервері
[[email protected] geekflare]# ls -ltr total 4 -rw-r--r-- 1 root root 11 Oct 19 11:09 MinIO-Test.txt [[email protected] geekflare]#
Якщо натиснути кнопку спільного доступу до файлів у веб-переглядачі, ви отримаєте посилання для спільного доступу та можливість встановити термін дії.
Клієнт MinIO
Клієнт MinIO — це більше, ніж aws-cli, який дозволяє керувати сховищем. Клієнт доступний для Windows, macOS і Linux.
Щоб встановити в Linux, виконайте наступне.
wget https://dl.min.io/client/mc/release/linux-amd64/mc chmod 755 mc
Виконайте команду mc, щоб переглянути довідку щодо команд.
[[email protected] ~]# ./mc NAME: mc - MinIO Client for cloud storage and filesystems. USAGE: mc [FLAGS] COMMAND [COMMAND FLAGS | -h] [ARGUMENTS...] COMMANDS: alias set, remove and list aliases in configuration file ls list buckets and objects mb make a bucket rb remove a bucket cp copy objects mirror synchronize object(s) to a remote site cat display object contents head display first 'n' lines of an object pipe stream STDIN to an object share generate URL for temporary access to an object find search for objects sql run sql queries on objects stat show object metadata mv move objects tree list buckets and objects in a tree format du summarize disk usage recursively retention set retention for object(s) legalhold manage legal hold for object(s) diff list differences in object name, size, and date between two buckets rm remove objects version manage bucket versioning ilm manage bucket lifecycle encrypt manage bucket encryption config event manage object notifications watch listen for object notification events undo undo PUT/DELETE operations policy manage anonymous access to buckets and objects tag manage tags for bucket and object(s) replicate configure server side bucket replication admin manage MinIO servers update update mc to latest release GLOBAL FLAGS: --autocompletion install auto-completion for your shell --config-dir value, -C value path to configuration folder (default: "/root/.mc") --quiet, -q disable progress bar display --no-color disable color theme --json enable JSON lines formatted output --debug enable debug output --insecure disable SSL certificate verification --help, -h show help --version, -v print the version TIP: Use 'mc --autocompletion' to enable shell autocompletion VERSION: RELEASE.2020-10-03T02-54-56Z [[email protected] ~]#
Давайте спробуємо перерахувати файл, який я завантажив за допомогою команди mc.
По-перше, нам потрібно встановити псевдонім для сховища, яким ми хочемо керувати.
[[email protected] ~]# ./mc alias set minio http://xx.71.141.xx:9000/ techukraine.net geekpassword Added `minio` successfully. [[email protected] ~]#
- minio — псевдонім. Ви можете змінити це на будь-що.
- Змініть кінцеву точку HTTP на справжню
- Змініть доступ і секретний ключ на свій
і, щоб отримати список, використовуватиме команду ls, як показано нижче.
[[email protected] ~]# ./mc ls --recursive minio [2020-10-19 11:09:06 UTC] 11B techukraine.net/MinIO-Test.txt [[email protected] ~]#
чудово це працює!
Через клієнта можна робити буквально все. Ви можете керувати не лише хмарним сховищем MinIO, але й GCS, AWS S3, Azure.
Подивіться це швидкий посібник для клієнта для більш детальної інформації.
MinIO SDK
Залежно від стека програми ви можете програмно взаємодіяти зі сховищем об’єктів за допомогою SDK. Він підтримує Go, Python, Node.js, .NET, Haskell і Java.
Шлюз MinIO
Додайте шлюз MiniIO до S3, Azure, NAS, HDFS, щоб скористатися перевагами браузера MinIO та кешування диска.
Висновок
Якщо ви шукаєте приватне, гібридне або багатохмарне сховище об’єктів, тоді MinIO виглядає багатообіцяючим. Спробуйте, і ви закохаєтесь у нього. Щоб перевірити речі, ви можете отримати MinIO VM Kamatera або встановіть себе на будь-якому хмарному сервері.