1
0
mirror of https://github.com/minio/docs.git synced 2025-08-09 13:02:53 +03:00
Files
docs/source/includes/common-installation.rst
Andrea Longo ed88e699ab Link to systemctl update docs in rpm/deb install instructions (#822)
The update instructions in the "You are running an older version" banner
are not correct for systemd managed deployments (also the process
recommended for rpm/deb installs).

Link to the correct update procedure in the install docs. This is not
intended to be comprehensive, just pointers for future-admin who might
have forgotten.

Staged:

http://192.241.195.202:9000/staging/deb-upgrades/linux/html/operations/install-deploy-manage/deploy-minio-single-node-single-drive.html#download-the-minio-server
2023-04-19 13:56:05 -06:00

270 lines
11 KiB
ReStructuredText

.. start-install-minio-binary-desc
The following tabs provide examples of installing MinIO onto 64-bit Linux operating systems using RPM, DEB, or binary.
The RPM and DEB packages automatically install MinIO to the necessary system paths and create a ``minio`` service for ``systemctl``.
MinIO strongly recommends using the RPM or DEB installation routes.
To update deployments managed using ``systemctl``, see :ref:`minio-upgrade-systemctl`.
.. tab-set::
.. tab-item:: RPM (RHEL)
:sync: rpm
Use the following commands to download the latest stable MinIO RPM and
install it.
.. code-block:: shell
:class: copyable
:substitutions:
wget |minio-rpm| -O minio.rpm
sudo dnf install minio.rpm
.. tab-item:: DEB (Debian/Ubuntu)
:sync: deb
Use the following commands to download the latest stable MinIO DEB and
install it:
.. code-block:: shell
:class: copyable
:substitutions:
wget |minio-deb| -O minio.deb
sudo dpkg -i minio.deb
.. tab-item:: Binary
:sync: binary
Use the following commands to download the latest stable MinIO binary and
install it to the system ``$PATH``:
.. code-block:: shell
:class: copyable
wget https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
.. end-install-minio-binary-desc
.. start-upgrade-minio-binary-desc
The following tabs provide examples of updating MinIO onto 64-bit Linux operating systems using RPM, DEB, or binary executable.
For infrastructure managed by tools such as Ansible or Terraform, defer to your internal procedures for updating packages or binaries across multiple managed hosts.
.. tab-set::
.. tab-item:: RPM (RHEL)
:sync: rpm
Use the following commands to download the latest stable MinIO RPM and
update the existing installation.
.. code-block:: shell
:class: copyable
:substitutions:
curl |minio-rpm| -O minio.rpm
sudo dnf update minio.rpm
.. tab-item:: DEB (Debian/Ubuntu)
:sync: deb
Use the following commands to download the latest stable MinIO DEB and
upgrade the existing installation:
.. code-block:: shell
:class: copyable
:substitutions:
curl |minio-deb| -O minio.deb
sudo dpkg -i minio.deb
.. tab-item:: Binary
:sync: binary
Use the following commands to download the latest stable MinIO binary and
overwrite the existing binary:
.. code-block:: shell
:class: copyable
curl https://dl.min.io/server/minio/release/linux-amd64/minio
chmod +x minio
sudo mv minio /usr/local/bin/
Replace ``/usr/local/bin`` with the location of the existing MinIO binary.
Run ``which minio`` to identify the path if not already known.
You can validate the upgrade by computing the ``SHA256`` checksum of each binary and ensuring the checksum matches across all hosts:
.. code-block:: shell
:class: copyable
shasum -a 256 /usr/local/bin/minio
The output of :mc-cmd:`minio --version <minio server>` should also match across all hosts.
.. end-upgrade-minio-binary-desc
.. start-install-minio-tls-desc
MinIO enables :ref:`Transport Layer Security (TLS) <minio-tls>` 1.2+
automatically upon detecting a valid x.509 certificate (``.crt``) and
private key (``.key``) in the MinIO ``${HOME}/.minio/certs`` directory.
For ``systemd``-managed deployments, use the ``$HOME`` directory for the
user which runs the MinIO server process. The provided ``minio.service``
file runs the process as ``minio-user``. The previous step includes instructions
for creating this user with a home directory ``/home/minio-user``.
- Place TLS certificates into ``/home/minio-user/.minio/certs``.
- If *any* MinIO server or client uses certificates signed by an unknown
Certificate Authority (self-signed or internal CA), you *must* place the CA
certs in the ``/home/minio-user/.minio/certs/CAs`` on all MinIO hosts in the
deployment. MinIO rejects invalid certificates (untrusted, expired, or
malformed).
If the ``minio.service`` file specifies a different user account, use the
``$HOME`` directory for that account. Alternatively, specify a custom
certificate directory using the :mc-cmd:`minio server --certs-dir`
commandline argument. Modify the ``MINIO_OPTS`` variable in
``/etc/defaults/minio`` to set this option. The ``systemd`` user which runs the
MinIO server process *must* have read and listing permissions for the specified
directory.
For more specific guidance on configuring MinIO for TLS, including multi-domain
support via Server Name Indication (SNI), see :ref:`minio-tls`. You can
optionally skip this step to deploy without TLS enabled. MinIO strongly
recommends *against* non-TLS deployments outside of early development.
.. end-install-minio-tls-desc
.. start-install-minio-console-desc
Open your browser and access any of the MinIO hostnames at port ``:9001`` to
open the :ref:`MinIO Console <minio-console>` login page. For example,
``https://minio1.example.com:9001``.
Log in with the :guilabel:`MINIO_ROOT_USER` and :guilabel:`MINIO_ROOT_PASSWORD`
from the previous step.
.. image:: /images/minio-console/console-login.png
:width: 600px
:alt: MinIO Console Login Page
:align: center
You can use the MinIO Console for general administration tasks like
Identity and Access Management, Metrics and Log Monitoring, or
Server Configuration. Each MinIO server includes its own embedded MinIO
Console.
.. end-install-minio-console-desc
.. start-local-jbod-single-node-desc
MinIO strongly recommends direct-attached :abbr:`JBOD (Just a Bunch of Disks)`
arrays with XFS-formatted disks for best performance.
Using any other type of backing storage (SAN/NAS, ext4, RAID, LVM) typically results in a reduction in performance, reliability, predictability, and consistency.
Ensure all server drives for which you intend MinIO to use are of the same type (NVMe, SSD, or HDD) with identical capacity (e.g. ``12`` TB).
MinIO does not distinguish drive types and does not benefit from mixed storage types.
Additionally. MinIO limits the size used per drive to the smallest drive in the deployment.
For example, if the deployment has 15 10TB drives and 1 1TB drive, MinIO limits the per-drive capacity to 1TB.
MinIO *requires* using expansion notation ``{x...y}`` to denote a sequential series of drives when creating the new |deployment|, where all nodes in the |deployment| have an identical set of mounted drives.
MinIO also requires that the ordering of physical drives remain constant across restarts, such that a given mount point always points to the same formatted drive.
MinIO therefore **strongly recommends** using ``/etc/fstab`` or a similar file-based mount configuration to ensure that drive ordering cannot change after a reboot.
For example:
.. code-block:: shell
$ mkfs.xfs /dev/sdb -L DISK1
$ mkfs.xfs /dev/sdc -L DISK2
$ mkfs.xfs /dev/sdd -L DISK3
$ mkfs.xfs /dev/sde -L DISK4
$ nano /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
LABEL=DISK1 /mnt/disk1 xfs defaults,noatime 0 2
LABEL=DISK2 /mnt/disk2 xfs defaults,noatime 0 2
LABEL=DISK3 /mnt/disk3 xfs defaults,noatime 0 2
LABEL=DISK4 /mnt/disk4 xfs defaults,noatime 0 2
You can then specify the entire range of drives using the expansion notation ``/mnt/disk{1...4}``.
If you want to use a specific subfolder on each drive, specify it as ``/mnt/disk{1...4}/minio``.
MinIO **does not** support arbitrary migration of a drive with existing MinIO data to a new mount position, whether intentional or as the result of OS-level behavior.
.. end-local-jbod-single-node-desc
.. start-local-jbod-desc
MinIO strongly recommends direct-attached :abbr:`JBOD (Just a Bunch of Disks)`
arrays with XFS-formatted disks for best performance.
- Direct-Attached Storage (DAS) has significant performance and consistency
advantages over networked storage (NAS, SAN, NFS).
- Deployments using non-XFS filesystems (ext4, btrfs, zfs) tend to have
lower performance while exhibiting unexpected or undesired behavior.
- RAID or similar technologies do not provide additional resilience or
availability benefits when used with distributed MinIO deployments, and
typically reduce system performance.
Ensure all nodes in the |deployment| use the same type (NVMe, SSD, or HDD) of
drive with identical capacity (e.g. ``N`` TB) . MinIO does not distinguish drive
types and does not benefit from mixed storage types. Additionally. MinIO limits
the size used per drive to the smallest drive in the deployment. For example, if
the deployment has 15 10TB drives and 1 1TB drive, MinIO limits the per-drive
capacity to 1TB.
MinIO *requires* using expansion notation ``{x...y}`` to denote a sequential
series of drives when creating the new |deployment|, where all nodes in the
|deployment| have an identical set of mounted drives. MinIO also
requires that the ordering of physical drives remain constant across restarts,
such that a given mount point always points to the same formatted drive. MinIO
therefore **strongly recommends** using ``/etc/fstab`` or a similar file-based
mount configuration to ensure that drive ordering cannot change after a reboot.
For example:
.. code-block:: shell
$ mkfs.xfs /dev/sdb -L DISK1
$ mkfs.xfs /dev/sdc -L DISK2
$ mkfs.xfs /dev/sdd -L DISK3
$ mkfs.xfs /dev/sde -L DISK4
$ nano /etc/fstab
# <file system> <mount point> <type> <options> <dump> <pass>
LABEL=DISK1 /mnt/disk1 xfs defaults,noatime 0 2
LABEL=DISK2 /mnt/disk2 xfs defaults,noatime 0 2
LABEL=DISK3 /mnt/disk3 xfs defaults,noatime 0 2
LABEL=DISK4 /mnt/disk4 xfs defaults,noatime 0 2
You can then specify the entire range of drives using the expansion notation
``/mnt/disk{1...4}``. If you want to use a specific subfolder on each drive,
specify it as ``/mnt/disk{1...4}/minio``.
MinIO **does not** support arbitrary migration of a drive with existing MinIO
data to a new mount position, whether intentional or as the result of OS-level
behavior.
.. end-local-jbod-desc
.. start-nondisruptive-upgrade-desc
MinIO strongly recommends restarting all nodes simultaneously. MinIO operations
are atomic and strictly consistent. As such the restart procedure is
non-disruptive to applications and ongoing operations.
Do **not** perform "rolling" (e.g. one node at a time) restarts.
.. end-nondisruptive-upgrade-desc