Glusterfs как внешнее хранилище для kubernetes

2) Install GlusterFS on Debian (Both nodes)

Then install GlusterFS on both nodes. The good thing is that it’s in the official Debian repositories, so it’s pretty easy to do.

On the terminal, run the following:

:~# apt install glusterfs-server

Then, start and check the service status.

:~# systemctl start glusterd
:~# systemctl status glusterd
● glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/lib/systemd/system/glusterd.service; disabled; vendor preset: enabled)
Active: active (running) since Thu 2019-08-08 15:22:29 EDT; 27s ago
Docs: man:glusterd(8)
Process: 8708 ExecStart=/usr/sbin/glusterd -p /run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS)
Main PID: 8709 (glusterd)
Tasks: 8 (limit: 893)
Memory: 2.8M
CGroup: /system.slice/glusterd.service
└─8709 /usr/sbin/glusterd -p /run/glusterd.pid --log-level INFO

Aug 08 15:22:26 osradar systemd: Starting GlusterFS, a clustered file-system server...
Aug 08 15:22:29 osradar systemd: Started GlusterFS, a clustered file-system server.

So, GLusterFS is running.

5) Install GlusterFS on Debian 10 (Client)

On the server-side everything is done, just do a little configuration on the client.

First, install the glusterfs package.

:~# apt install glusterfs-client

Then, create a folder to locate the GlusterFS volume data. After this, mount the volume.

:~# mkdir -p /mnt/glusterfsvolume
:~# mount -t glusterfs gluster1.osradar.local:/glusterfsvolume /mnt/glusterfsvolume

Remember open the right ports and incoming host.

It is recommended to have it automatically mounted to have immediate availability. You can do it with the following command:

:~# echo "gluster1.osradar.local:/glusterfsvolume /mnt/glusterfsvolume/ glusterfs  defaults,_netdev 0 0" | tee --append /etc/fstab

And that is it. You can start to replicate. To test it, just create some files in the volume folders and see how they replicate on the other server and on the client.

Please share this post and join our Telegram Channel.

Настройка разрешения имен для приватной сети

В рамках настройки будем полагать, что все узлы соединены доверенной приватной сетью, в которой они доступны по доменными именам:

  • server1.private 10.0.0.1/24
  • server2.private 10.0.0.2/24
  • server3.private 10.0.0.3/24

Убедитесь, что серверы находятся в разных доменах отказа, чтобы не столкнуться с ситуацией, когда авария затронет сразу две или больше машин.

В ходе настройки будем предполагать, что используются серверы под управлением Debian 9, Ubuntu 16.04 или 18.04 или CentOS7.

Сначала на каждом сервере сформируем файл /etc/hosts, чтобы серверы «видели» друг друга по доменным именам:

cat | sudo tee -a /etc/hosts >/dev/null
10.0.0.1 server1.private
10.0.0.2 server2.private 
10.0.0.3 server3.private

Ctrl^D

После добавления этих строк убедитесь, что все серверы «видят» друг друга по доменным именам.

Step 4: Remove LVM Filter

Now, remove all the LVM filters applied earlier. This is accomplished by editing the /etc/lvm/lvm.conf config file as follows:

-filter = [ "a|/dev/sd|", "r/.*/"]
+filter = [ "a/.*/" ]

After, run vgscan to display the list of volume groups available:

# vgscan
  Reading all physical volumes.  This may take a while...
  Found volume group "vg_userbackup" using metadata type lvm2
  Found volume group "vg_gluster" using metadata type lvm2
  Found volume group "vg_userbackup_original" using metadata type lvm2
  Found volume group "vg_gluster_original" using metadata type lvm2
  Found volume group "vg_sys" using metadata type lvm2

Here we can see we now have both the original “corrupted” volume and the restored volumes.

Предварительные требования

Для выполнения данного обучающего руководства вам понадобится три сервера, работающих на Ubuntu 20.04. Каждый сервер должен иметь пользователя non-root user с правами администратора, а также брандмауэр, настроенный с помощью UFW. Чтобы выполнить настройку, воспользуйтесь руководством по начальной настройке сервера Ubuntu 20.04.

Примечание. Как указано в разделе «Цели», это обучающее руководство покажет вам, как настроить два ваших сервера Ubuntu для работы в качестве серверов пула хранения данных, а оставшийся сервер — в качестве клиента, который вы будете использовать для доступа к этим узлам.

Для ясности в этом обучающем модуле будут использоваться компьютеры со следующими именами хостов:

Имя хоста Роль в пуле хранения данных
gluster0 Сервер
gluster1 Сервер
gluster2 Клиент

Команды, которые следует запускать в gluster0 или gluster1, записываются на голубом или розовом фоне соответственно:

Команды, которые следует запускать исключительно на клиенте (gluster2), имеют зеленый фон:

Команды, которые могут или должны запускаться на нескольких компьютерах, записываются на сером фоне:

Обработка отказов

Мы уже познакомились немного с архитектурой двух решений и теперь можем поговорить о том, как с этим жить и какие есть особенности при обслуживании.

Предположим, у нас отказал sda на S1 — обычное дело.

В случае с gl:

  • копия данных на оставшемся в группе живом диске не перераспределяется автоматически на другие группы;
  • пока диск не будет заменен, останется только одна копия данных;
  • при замене сбойного диска на новый репликация выполняется с исправного диска на новый (1 на 1).

Это похоже на обслуживание полки с несколькими RAID-1. Да, с тройной репликацией, при отказе одного диска останется не одна копия, а две, но все равно у такого подхода есть серьезные недостатки, и я покажу их на хорошем примере с RADOS.

Предположим, у нас отказал sda на S1 (OSD-0) — обычное дело:

  • PG, которые находились на OSD-0, будут автоматически перемаплены на другие OSD через 10 минут (по умолчанию). В нашем примере на OSD 1 и 2. Если бы серверов было больше, то на большее число OSD.
  • PG, которые хранят вторую, уцелевшую копию данных, начнут автоматически реплицировать их на те OSD, куда перенесены восстанавливаемые PG. Получается репликация «многие-ко-многим», а не «один-к-одному» как у gl.
  • При введении нового диска взамен сломанного на новую OSD будут намаплены какие-то PG в соответствии с ее весом и постепенно перераспределены данные с других OSD.

Думаю, архитектурные преимущества RADOS пояснять нет смысла. Вы можете не дергаться при получении письма о том, что отказал диск. А придя утром на работу обнаружите, что все недостающие копии уже восстановлены на десятках других OSD или в процессе этого. На больших кластерах, где сотни PG размазаны по куче дисков, восстановление данных одной OSD может проходить на скоростях сильно больших скорости одного диска за счет того, что вовлечены (читают и пишут) десятки OSD. Ну и про распределение нагрузки тоже забывать не стоит.

А че по клиентам?

Нативный API двух систем реализован в виде библиотек libgfapi (gl) и libcephfs (CephFS). Биндинги для популярных языков тоже есть. В целом, с библиотеками все примерно одинаково хорошо. Вездесущая NFS-Ganesha поддерживает в качестве FSAL обе библиотеки, что тоже норм. Qemu также поддерживает нативный API gl через libgfapi.

А вот fio (Flexible I/O Tester) давно и успешно поддерживает libgfapi, но поддержки libcephfs в нем нет. Это плюс gl, т.к. с помощью fio очень приятно тестировать gl «напрямую». Только работая из userspace через libgfapi вы получите от gl все, что она может.

Но если мы говорим о POSIX файловой системе и о способах ее монтирования, то тут gl может предложить только FUSE-клиент, а CephFS реализацию в апстримном ядре. Понятно, что в модуле ядра можно такого наворотить, что FUSE будет показывать лучшую производительность. Но на практике FUSE — это всегда оверхед на контекстных переключениях. Я лично не раз видел, как FUSE нагибал двухсокетный сервер одними CS.
Как-то на этот счет Линус сказал:

Разработчики gl наоборот считают, что FUSE это круто. Говорят, что это дает больше гибкости и отвязывает от версий ядра. Как по мне, они используют FUSE, потому что gl это не про скорость. Как-то пишется — ну и нормально, и заморачиваться с реализацией в ядре действительно странно.

Что такое ReFS

Аббревиатура от «Resilient File System», ReFS – это новая файловая система, созданная с использованием кода текущей файловой системы NTFS. На данный момент ReFS – это не просто замена NTFS. Она имеет свои преимущества и недостатки. У Вас не получиться просто использовать ReFS вместо NTFS на вашем системном диске.

Поскольку ReFS – новейшая файловая система Microsoft, она предназначена для решения нескольких основных проблем с NTFS. ReFS призвана быть более устойчивой к повреждению данных, лучше работать с определенными рабочими нагрузками и лучше масштабироваться для очень больших файловых систем. Давайте посмотрим, что именно это означает.

Настройка Glusterfs

Мы будем настраивать распределение данных GlusterFS между двумя системами, сервис должен быть установлен и настроен на обоих из них. На обоих компьютерах наши устройства хранения смонтированы в /storage. Перед тем как начать работать с Glusterfs, давайте добавим ip адреса наших серверов /etc/hosts, чтобы обращаться с ними было легче:

Это необходимо сделать на обоих машинах. Дальше нам нужно создать пул

Неважно какую машину вы выберете для этого все будет работать одинаково. Мы будем использовать gluster1

Чтобы комьпютеры могли получить доступ друг к другу, нужно открыть несколько портов в брандмауэре:

Для подключения машины gluster2 выполните команду:

Локальная система автоматически добавляется к пулу, поэтому дополнительно ничего делать не нужно. С помощью следующей команды мы создадим хранилище с репликацией на двух подключенных системах:

По умолчанию используется протокол TCP/IP для взаимодействия, но вы можете вручную указать InfiniBand. Если вы попытаетесь создать хранилище на корневом разделе, то у вас ничего не получиться, для его создания нужно добавить в конец команды опцию force. Далее смотрим информацию о созданном хранилище:

Дальше можно запустить созданную группу:

Существует несколько способов получить доступ к хранилищу GlusterFS. Работа через FUSE будет наиболее быстрой. Также можно использовать Samba или NFS. Кроме того, преимущество использование официального клиента, в том, что вы можете получить доступ к отдельным хранилищам. Для подключения Glusterfs с помощью официального инструмента используйте mount:

Для настройки автоматического монтирования вам понадобится добавить строку в /etc/fstab. Вы можете очень легко расширить существующий пул при необходимости, для этого просто добавьте новый раздел:

Естественно, что ip адрес узла gluster3 должен быть добавлен в файл /etc/hosts. Сначала мы добавляем его в список пиров, затем инициализируем на нем наш раздел. После выполнения команды наше хранилище будет состоять из трех устройств. Вы можете очень просто удалить один из разделов и открепить устройство:

Когда вы добавляете или удаляете разделы, необходимо пересортировать данные, система работала наиболее эффективно. Для этого выполните:

Чтобы посмотреть статус балансировки используйте команду status:

Step 5: Mount Original Bricks

Before we can create the Gluster volume for the original bricks we need to mount all the original bricks.

Step 5 A: Create Mount Points

First, we need to create the brick mount points:

# mkdir -p /brick/home_01_original
# mkdir -p /brick/home_02_original
# mkdir -p /brick/home_03_original
# mkdir -p /brick/home_04_original

Step 5 B: Reboot Server

It is now safe to reboot and recommended to reboot the server to validate the server is ready for the last steps (it also rebuilds the device mappers list in /dev).

Step 5 C: Modify /etc/fstab

Next, add the following lines to the /etc/fstab file:

# Temporary for DR compare
/dev/vg_gluster_original/lv_home_01 /brick/home_01_original  xfs     defaults
/dev/vg_gluster_original/lv_home_02 /brick/home_02_original  xfs     defaults
/dev/vg_gluster_original/lv_home_03 /brick/home_03_original  xfs     defaults
/dev/vg_gluster_original/lv_home_04 /brick/home_04_original  xfs     defaults
# End DR Compare

Step 5 D: Mount File Bricks

# mount -a -t xfs

At this point you can begin any brick level comparison or repairs prior to the creation of the Gluster volume and the use of the self-healing within Gluster to repair the volume. Once you are ready to proceed (and have both servers at this point) move on to Step 6.

Mounting Volumes

After installing the Gluster Native Client, you need to mount Gluster
volumes to access data. There are two methods you can choose:

Manually Mounting Volumes

To mount a volume, use the following command:
# mount -t glusterfs HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR
For example:
# mount -t glusterfs server1:/test-volume /mnt/glusterfs

Note
The server specified in the mount command is only used to fetch
the gluster configuration volfile describing the volume name.
Subsequently, the client will communicate directly with the
servers mentioned in the volfile (which might not even include the
one used for mount).
If you see a usage message like «Usage: mount.glusterfs», mount
usually requires you to create a directory to be used as the mount
point. Run «mkdir /mnt/glusterfs» before you attempt to run the
mount command listed above.

Mounting Options

You can specify the following options when using the
command. Note that you need to separate all options
with commas.

For example:

If option is added while mounting fuse client,
when the first volfile server fails, then the server specified in
option is used as volfile server to mount the
client.

In option, specify the number of
attempts to fetch volume files while mounting a volume. This option is
useful when you mount a server with multiple IP addresses or when
round-robin DNS is configured for the server-name..

If is set to ON, it forces the use of readdirp
mode in fuse kernel module

Automatically Mounting Volumes

You can configure your system to automatically mount the Gluster volume
each time your system starts.

The server specified in the mount command is only used to fetch the
gluster configuration volfile describing the volume name. Subsequently,
the client will communicate directly with the servers mentioned in the
volfile (which might not even include the one used for mount).

To mount a volume, edit the /etc/fstab file and add the following
line:
HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR glusterfs defaults,_netdev 0 0
For example:
server1:/test-volume /mnt/glusterfs glusterfs defaults,_netdev 0 0

Mounting Options

You can specify the following options when updating the /etc/fstab file.
Note that you need to separate all options with commas.

For example:

Testing Mounted Volumes

To test mounted volumes

  • Use the following command:

    If the gluster volume was successfully mounted, the output of the
    mount command on the client will be similar to this example:

  • Use the following command:

    The output of df command on the client will display the aggregated
    storage space from all the bricks in a volume similar to this
    example:

  • Change to the directory and list the contents by entering the
    following:

For example,

NFS

You can use NFS v3 to access to gluster volumes. Extensive testing has
be done on GNU/Linux clients and NFS implementation in other operating
system, such as FreeBSD, and Mac OS X, as well as Windows 7
(Professional and Up), Windows Server 2003, and others, may work with
gluster NFS server implementation.

GlusterFS now includes network lock manager (NLM) v4. NLM enables
applications on NFSv3 clients to do record locking on files on NFS
server. It is started automatically whenever the NFS server is run.

You must install nfs-common package on both servers and clients (only
for Debian-based) distribution.

This section describes how to use NFS to mount Gluster volumes (both
manually and automatically) and how to verify that the volume has been
mounted successfully.

Creating Distributed Dispersed Volumes

Distributed dispersed volumes are the equivalent to distributed replicated
volumes, but using dispersed subvolumes instead of replicated ones.

To create a distributed dispersed volume

  1. Create a trusted storage pool.

  2. Create the distributed dispersed volume:

    To create a distributed dispersed volume, the disperse keyword and
    <count> is mandatory, and the number of bricks specified in the
    command line must must be a multiple of the disperse count.

    redundancy is exactly the same as in the dispersed volume.

    If the transport type is not specified, tcp is used as the default. You
    can also set additional options if required, like in the other volume
    types.

    volume create: : failed: Multiple bricks of a replicate volume are present on the same server. This setup is not optimal.
    Do you still want to continue creating the volume? (y/n)«`

Переименование файлов

Снова возвращаемся к хеш-функциям. Мы разобрались с тем, как конкретные файлы роутятся на конкретные диски, и теперь уместным становится вопрос, а что же будет при переименовании файлов?

Ведь если мы меняем имя файла, то хеш от его имени тоже поменяется, а значит, и место этому файлу на другом диске (в другом хеш-диапазоне) или на другой PG/OSD в случае RADOS. Да, мы мыслим правильно, и тут у двух систем снова все перпендикулярно.

А вот у RADOS вообще нет метода для переименования объектов как раз из-за необходимости в последующем их перемещении. Для переименования предлагается использовать честное копирование, что приводит к синхронному перемещению объекта. А CephFS, которая работает поверх RADOS, имеет козырь в рукаве в виде пула с метаданными и MDS. Изменение имени файла не затрагивает содержимое файла в data-пуле.

Другие команды GlusterFS

Просмотр списка пулов в кластере

# gluster pool list

Добавить новый пул в кластер

# gluster peer probe glusterfs-srv3.local

Удалить пул из кластера

# gluster peer detach glusterfs-srv3.local

Просмотр списка томов

# gluster volume list

Просмотр состояния тома

# gluster volume status

Остановка работы тома

# gluster volume stop volume-name

Удаление тома

# gluster volume delete volume-name

Запуск ребалансировки тома

# gluster volume rebalance volume-name start

Просмотр состояния ребалансировки тома

# gluster volume rebalance volume-name status

Добавить раздел к тому

# gluster volume add-brick replica 3 volume-name glusterfs-srv3.local:/mnt/data/volume-data-2/

Удалить раздел из тома

# gluster volume remove-brick volume-name glusterfs-srv3.local:/mnt/data/volume-data-2/

Creating Distributed Striped Replicated Volumes

Distributed striped replicated volumes distributes striped data across
replicated bricks in the cluster. For best results, you should use
distributed striped replicated volumes in highly concurrent environments
where parallel access of very large files and performance is critical.
In this release, configuration of this volume type is supported only for
Map Reduce workloads.

To create a distributed striped replicated volume

  1. Create a trusted storage pool.

  2. Create a distributed striped replicated volume using the following
    command:

    For example, to create a distributed replicated striped volume
    across eight storage servers:

    If the transport type is not specified, tcp is used as the
    default. You can also set additional options if required, such as
    auth.allow or auth.reject.

    volume create: : failed: Multiple bricks of a replicate volume are present on the same server. This setup is not optimal. Use ‘force’ at the end of the command if you want to override this behavior.«`

ReFS не может заменить NTFS

Все эти функции звучат неплохо, но вы не можете просто переключиться на ReFS из NTFS. Windows не может загружаться из файловой системы ReFS и требует NTFS.

ReFS также исключает другие функции, доступные в NTFS, включая сжатие и шифрование файловой системы, жесткие ссылки, расширенные атрибуты, дедупликацию данных и дисковые квоты. Тем не менее, ReFS совместима с различными функциями. Например, если вы не можете выполнять шифрование определенных данных на уровне файловой системы, ReFS будет совместима с полным типом шифрования BitLocker.

Windows 10 не позволит вам форматировать любой старый раздел как ReFS. В настоящее время вы можете использовать ReFS только для пространства хранения, где её функции помогают защитить данные от повреждений. В Windows Server 2016 вы можете форматировать тома с помощью ReFS вместо NTFS. Возможно, вы захотите сделать это для тома, на котором планируете хранить виртуальные машины. Однако, вы по-прежнему не сможете использовать ReFS для загрузочного тома. Windows может загружаться только с диска NTFS.

Непонятно, какое будущее ждёт ReFS. Возможно, Microsoft в один прекрасный день улучшит её, пока она не сможет полностью заменить NTFS во всех версиях Windows. Неясно, когда это может произойти. Но, на данный момент ReFS может использоваться только для конкретных задач.

Централизованное хранение журналов приложений

Вы можете захотеть хранить журналы приложений в общем каталоге GlusterFS, чтобы иметь возможность их совместной обработки. В этом случае вам необходимо изменить параметры Nginx, добавив в них имя хоста или его адрес:

access_log /var/log/nginx/access-10.0.0.1.log;
error_log /var/log/nginx/error-10.0.0.1.log;

Не забудьте организовать ротацию журналов — в общем каталоге это сделать несколько сложнее. Другой способ организации централизованного хранения записей журналов — отправлять их в общее хранилище, например, в Elasticsearch с помощью Filebeat и анализировать их в Kibana.

Создание тома хранения данных

Теперь, когда все серверы находятся в пуле, можно создать том для хранения данных. Поскольку в нашем примере том создается в корневой файловой системе, нам придется использовать аргумент force.

sudo gluster volume create gfs replica 3 server{1,2,3}.private:/opt/gluster-volume force

volume create: gfs: success: please start the volume to access data

Убедиться в том, что том создан можно с помощью команды:

sudo gluster volume list

gfs

Для активации тома его необходимо запустить:

sudo gluster volume start gfs

volume start: gfs: success

Теперь можно запросить состояние тома gfs:

sudo gluster volume status gfs

Status of volume: gfs
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick server1.private:/opt/gluster-volume   49152     0          Y       6741 
Brick server2.private:/opt/gluster-volume   49152     0          Y       6558 
Brick server3.private:/opt/gluster-volume   49152     0          Y       7504 
Self-heal Daemon on localhost               N/A       N/A        Y       6764 
Self-heal Daemon on server2.private         N/A       N/A        Y       6581 
Self-heal Daemon on server3.private         N/A       N/A        Y       7527 
 
Task Status of Volume gfs
------------------------------------------------------------------------------
There are no active volume tasks

Информация о томе:

sudo gluster volume info gfs
 
Volume Name: gfs
Type: Replicate
Volume ID: d1408265-bc67-4501-b255-efd165fba094
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: server1.private:/opt/gluster-volume
Brick2: server2.private:/opt/gluster-volume
Brick3: server3.private:/opt/gluster-volume
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off

Gluster Server Docker container:

Although Setting up a glusterfs environment is a pretty simple and straight forward procedure, Gluster community do maintain docker images of gluster both Fedora and CentOS as base image in the docker hub for the ease of users. The community maintains docker images of GlusterFS release in both Fedora and CentOS distributions.

The following are the steps to run the GlusterFS docker images that we maintain:

To pull the docker image from the docker hub run the following command:

CentOS:

This will pull the glusterfs docker image from the docker hub.
Alternatively, one could build the image from the Dockerfile directly. For this, clone the gluster-containers source repository and build the image using Dockerfiles in the repository. For getting the source, One can make use of git:

This repository consists of Dockerfiles for GlusterFS to build on both CentOS and Fedora distributions. Once you clone the repository, to build the image, run the following commands:

For Fedora,

For CentOS,

This command will build the docker image from the Dockerfile and will be assigned the name gluster-fedora or gluster-centos respectively. ‘-t’ option is used to give a name to the image we built.

Once the image is built in either of the above two steps, now we can run the container with gluster daemon running.

Before this, ensure the following directories are created on the host where docker is running:

  • /etc/glusterfs
  • /var/lib/glusterd
  • /var/log/glusterfs

Ensure all the above directories are empty to avoid any conflicts.

Also, ntp service like chronyd / ntpd service needs to be started in the host.
This way all the gluster containers started will be time synchronized.

Now run the following command:

( is either gluster-fedora or gluster-centos as per the configurations so far)

Where:

Bind mounting of following directories enables:

Systemd has been installed and is running in the container we maintain.

Once issued, this will boot up the Fedora or CentOS system and you have a container started with glusterd running in it.

Capturing coredumps

/var/log/core directory is already added in the container.
Coredumps can be configured to be generated under /var/log/core directory.

User can copy the coredump(s) generated under /var/log/core/ directory
from the container to the host.

For example:

GlusterFS

GlusterFS ― это масштабируемая сетевая файловая система, подходящая для задач с интенсивным использованием данных, таких как облачное хранилище и потоковая передача мультимедиа.

Ниже перечислены объекты GlusterFS, которые встречаются в данной статье.

  • Node. Сервер хранения, который участвует в доверенном пуле хранения.
  • Brick. Файловая система XFS (512-байтовые inode) на основе LVM (не обязательно, но Heketi поддерживает только такую конфигурацию), смонтированная в папке или каталоге.
  • Volume. Файловая система, которая предоставляется клиентам по сети. Volume можно смонтировать, используя Gluster Native Client (рекомендуемый способ подключения). Также поддерживается подключение по протоколам NFS и CIFS.

GlusterFS поддерживает различные типы реплицируемых томов, но в этой статье мы рассмотрим его работу на примере Replicated Gluster Volume. В данном случае каждый файл имеет N реплик, которые хранятся на Bricks, входящих в состав одного Volume.

Схема работы Replicated Gluster Volume

В случае выхода из строя одного из серверов для клиента будет доступна вся информация со второго сервера. Для лучшей отказоустойчивости рекомендуется использовать не менее трех реплик для каждого Volume. Именно такой вариант мы используем для некоторых компонентов Targetprocess, поэтому его и рассмотрим в данной статье.

Как отключить или включить ReFS или Resilient File System в Windows 10

С тех пор как NTFS была разработана и сформулирована в ОС Windows, требования к хранилищу данных резко изменились. Существовала острая необходимость в файловой системе следующего поколения, которая могла бы хорошо работать и решать проблемы, которые присутствовали в NTFS.

Именно тогда Microsoft в 2012 году назвала снимки и разработала ReFS (Resilient File System) — и была представлена ​​в Windows 8.1 и Windows Server 2012 .

ReFS была разработана для максимизации доступности и надежности данных , даже если соответствующие устройства хранения данных испытали аппаратный сбой.

С тех пор, как запоминающие устройства вошли в игру, потребность в дисковом пространстве увеличилась в геометрической прогрессии. В наши дни распространены даже мульти-терабайты накопителей. Следовательно, потребность в постоянно надежной структуре продолжала возникать одновременно.

ReFS имеет архитектуру, которая хорошо работает с чрезвычайно большими наборами данных без какого-либо влияния на производительность.

В этом руководстве мы увидим, как включить или отключить файловую систему ReFS в Windows 10 и попытаться отформатировать диск, используя его, но перед этим давайте рассмотрим некоторые ключевые функции этой величественной файловой системы.

В этой статье мы поговорим о функциях отказоустойчивой файловой системы и узнаем, как включить или отключить файловую систему ReFS в операционной системе Windows Server, а также попробуем отформатировать диск, использующий эту файловую систему.

Особенности отказоустойчивой файловой системы

Доступность данных . Файловая система ReFS расширяет доступность данных, демонстрируя устойчивость к повреждению или сбоям данных. Автоматические проверки целостности данных помогают поддерживать ReFS в сети, и вы вряд ли будете испытывать какое-либо время простоя.

Масштабируемость при растяжении: Требования к увеличению объема и размера данных постоянно растут в связи с изменяющейся технологией. ReFS предлагает возможность бросать вызов чрезвычайно большим наборам данных и работать с ними без проблем с производительностью.

Острое исправление ошибок: файловая система ReFS поставляется с автоматическим сканером целостности данных, известным как скруббер , который периодически сканирует том данных, выявляет потенциальные поврежденные сектора и обрабатывает их для восстановления. ,

ОБНОВЛЕНИЕ . Пожалуйста, прочитайте комментарии ниже, прежде чем продолжить. Дэн Гюль говорит: Опубликовать годовое обновление , это в основном сделает систему непригодной для использования, и по-прежнему невозможно будет выполнять форматирование в ReFS.

Какую файловую систему использует Windows 10?

Если это стандартная установка по умолчанию, ОС использует структуры NTFS. При сбое операционной системы Windows 10 с включенным дисковым пространством это файловые системы ReFS + NTFS.

Включить файловую систему ReFS в Windows 10

Теперь, когда вы знаете, что ReFS появился, чтобы справиться с ограничениями файловой системы NTFS, давайте посмотрим, как вы можете включить его в своей системе Windows 10 и использовать его для форматирования внешнего диска.

Прежде чем приступить к изменениям, обязательно создайте точку восстановления системы. Если в будущем возникнет какая-либо проблема, вы можете использовать эту точку восстановления для отката изменений.

1. Нажмите Windows Key + R на клавиатуре, чтобы запустить приглашение «Выполнить». Введите и нажмите Enter, чтобы открыть редактор реестра.

2. Перейдите по указанному ниже пути на левой боковой панели редактора реестра.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ FileSystem

3. Создайте DWORD и назовите его RefsDisableLastAccessUpdate. Установите его значение как 1 , чтобы включить его.

4. Далее, перейдите к указанному ниже пути на левой боковой панели.

HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Control \ MinInt

5. Если ключ MiniNT не существует, его можно создать, щелкнув правой кнопкой мыши> Создать> Ключ.

Теперь под этим ключом создайте новый DWORD и назовите его AllowRefsFormatOverNonmirrorVolume и установите его значение как 1 , чтобы включить его.

6. Выйдите и войдите снова, чтобы изменения вступили в силу. Теперь вы можете подключить внешнее устройство и выбрать файловую систему ReFS для его форматирования. Кроме того, вы можете открыть лист Свойства любого диска, чтобы увидеть, с какой файловой системой он связан.

Создание Replicated-тома

Пожалуй самая простая конфигурация.

gluster volume create rep01 replica 2 gl01:/gluster/gv01 gl02:/gluster/gv01_x000D_
_x000D_
_x000D_
volume create: rep01: success: please start the volume to access data

 Здесь rep01 — это имя создаваемого тома, а replica 2 — его конфигурация которая говорит о том, что данные будут храниться в двух экземплярах, на gl01:/gluster/gv01 и gl02:/gluster/gv01 соответственно.

Далее запускаем том;

gluster volume start rep01 _x000D_
_x000D_
_x000D_
volume start: gv01: success

Получить информацию о конфигурации тома можно с помощью команды info:

gluster volume info rep01_x000D_
_x000D_
_x000D_
Volume Name: rep01_x000D_
Type: Replicate_x000D_
Volume ID: 5895cdd2-c56f-440b-b176-6be4ab8cd80c_x000D_
Status: Started_x000D_
Number of Bricks: 1 x 2 = 2_x000D_
Transport-type: tcp_x000D_
Bricks:_x000D_
Brick1: gl01:/gluster/gv01_x000D_
Brick2: gl02:/gluster/gv01
Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Ваша ОС
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: