<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=BTIER</id>
	<title>BTIER - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://support.qbpro.ru/index.php?action=history&amp;feed=atom&amp;title=BTIER"/>
	<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=BTIER&amp;action=history"/>
	<updated>2026-04-03T17:36:57Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.38.1</generator>
	<entry>
		<id>https://support.qbpro.ru/index.php?title=BTIER&amp;diff=670&amp;oldid=prev</id>
		<title>imported&gt;Vix: Новая страница: « &lt;nowiki&gt;                        Basic / Block Tier Author : Mark Ruijter &lt;mruijter@gmail.com&gt; &lt;/nowiki&gt; ==ОБЗОР== [http://www.opennet.ru/opennews/art.shtml?…»</title>
		<link rel="alternate" type="text/html" href="https://support.qbpro.ru/index.php?title=BTIER&amp;diff=670&amp;oldid=prev"/>
		<updated>2013-08-26T19:04:40Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: « &amp;lt;nowiki&amp;gt;                        Basic / Block Tier Author : Mark Ruijter &amp;lt;mruijter@gmail.com&amp;gt; &amp;lt;/nowiki&amp;gt; ==ОБЗОР== [http://www.opennet.ru/opennews/art.shtml?…»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt; &amp;lt;nowiki&amp;gt;                        Basic / Block Tier&lt;br /&gt;
Author : Mark Ruijter &amp;lt;mruijter@gmail.com&amp;gt;&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
==ОБЗОР==&lt;br /&gt;
[http://www.opennet.ru/opennews/art.shtml?num=37023 источник]&lt;br /&gt;
&lt;br /&gt;
Представлен первый стабильный релиз проекта BTIER 1.0.0, предназначенного для формирования многоуровневых блочных устройств, состоящих из нескольких разнотипных устройств небольшого размера. Код системы отмечен как стабильный и прошедший тестирование в промышленном использовании, в том числе в достаточно сложных конфигурациях, в которых используются сетевые разделы DRDB и работают приложения Oracle. BTIER оформлен в виде модуля для ядра Linux, который может быть собран для ядер, начиная с выпуска 2.6.32. Изначально проект развивался под именем TIER, но был переименован в BTIER для того чтобы упростить выборку связанной с проектом информации через поисковые системы. Исходные тексты BTIER распространяется под лицензией GPL.&lt;br /&gt;
&lt;br /&gt;
За счёт оптимального разнесения блоков по дискам и использования техники активного кэширования данных в ОЗУ раздел на базе BTIER позволяет заметно поднять производительность сводного раздела. Например, при тестировании BTIER-раздела, созданного на базе SSD-накопителя STEC Zeus и 5 SAS НЖМД, и экспортируемого через iSCSI (SCST), была продемонстрирована способность выполнения заметно большего числа операций в секунду, по сравнению с системой кэширования на SSD-накопителях BCache. &lt;br /&gt;
&lt;br /&gt;
Использование BTIER позволяет достигнуть более высокой производительности по сравнению с другими методами ускорения доступа к данным, использующими SSD-накопители, благодаря применению техники кэширования в оперативной памяти, ранее реализованной в RAM-диске EPRD. При распределении данных по дискам TIER учитывает статистику доступа к уже размещённым данным, например, принимает во внимание то, когда данные использовались последний раз и как часто они запрашиваются. При наличии разных типов накопителей в пуле, отличающихся скоростными характеристиками, наиболее востребованные данные будут вытеснены на более быстрые накопители, такие как SSD или SAS НЖМД, а редко используемые данные будут размещены на медленных дисках.&lt;br /&gt;
&lt;br /&gt;
В итоге, BTIER позволяет значительно сэкономить, используя SSD только для действительно востребованных данных, при том, что общая ёмкость всего быстрого хранилища в BTIER составляет сумму из всех подключенных устройств хранения. Например, близкий аналог flashcache может поддерживать отдельный кэш из SSD-накопителей поверх традиционных дисков, дублируя данные, в то время как BTIER максимально эффективно использует доступное пространство. Кроме производительности, от других систем виртуального слияния хранилищ BTIER отличается поддержкой автоматической миграции данных между накопителями и обеспечением &amp;quot;умной&amp;quot; балансировки размещения блоков данных на накопителях в зависимости от характера нагрузки. &lt;br /&gt;
&lt;br /&gt;
==ВВЕДЕНИЕ==&lt;br /&gt;
Проект btier обеспечивает простой способ создания многоуровневых автоматизированных решений для хранения данных.&lt;br /&gt;
&lt;br /&gt;
Преимущества автоматического многоуровневого хранения:&lt;br /&gt;
* Автоматизированное многоуровневое хранение устраняет необходимость в ручной классификации данных и миграции при одновременном снижении расходов диск графов и питания/охлаждения&lt;br /&gt;
* Написать активных блоков данных для быстрого (SSD) Tier 0 хранении и улучшить производительность ввода-вывода случайной&lt;br /&gt;
* Автоматическая миграция неактивного блока данных более низкого уровня более доступным хранения данных, как SATA в RAID6&lt;br /&gt;
* Смешать SSD, SAS и SATA дисков в одной системе&lt;br /&gt;
* Развертывание твердотельных накопителей максимально написать и доступность данных для критически важных приложений&lt;br /&gt;
* Автоматическое restripe объем данных по всем дискам при добавлении емкости по требованию&lt;br /&gt;
&lt;br /&gt;
Дополнительная информация может быть найдена [http://en.wikipedia.org/wiki/Automated_Tiered_Storage здесь]&lt;br /&gt;
&lt;br /&gt;
==INTRODUCTION==&lt;br /&gt;
&lt;br /&gt;
The btier project provides a simple way to create an automated tiered &lt;br /&gt;
storage solution.&lt;br /&gt;
&lt;br /&gt;
The advantages of automatically tiered storage are:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Automated tiering eliminates manual data classification and migration while lowering drive counts and power/cooling costs&lt;br /&gt;
* Write active blocks of data to fast (SSD) Tier 0 storage and to improve random io performance&lt;br /&gt;
* Automatically migrate inactive blocks of data to lower-tier more affordable storage like SATA in RAID6 &lt;br /&gt;
* Mix SSD, SAS and SATA drives in the same system &lt;br /&gt;
* Deploy SSDs to maximize write performance and data availability for mission-critical applications&lt;br /&gt;
* Automatically restripe volume data across all drives when adding capacity on demand&lt;br /&gt;
&lt;br /&gt;
Additional information can be found [http://en.wikipedia.org/wiki/Automated_Tiered_Storage здесь]&lt;br /&gt;
&lt;br /&gt;
==INSTALLING BTIER==&lt;br /&gt;
&lt;br /&gt;
- PREREQUISITES&lt;br /&gt;
&lt;br /&gt;
To build the tier kernel module the kernel sources and C compiler&lt;br /&gt;
(gcc,make) need to be installed on the system.  &lt;br /&gt;
&lt;br /&gt;
The following command should show your kernel sources&lt;br /&gt;
ls /lib/modules/`uname -r`/build/&lt;br /&gt;
&lt;br /&gt;
Download btier from the sourceforge project page.&lt;br /&gt;
Extract the tar file : tar xvzf btier-x.x.x.tar.gz &lt;br /&gt;
&lt;br /&gt;
cd btier-x.x.x&lt;br /&gt;
make&lt;br /&gt;
&lt;br /&gt;
This should result in something like:&lt;br /&gt;
make -Wall -C /lib/modules/3.8.0-rc3/build SUBDIRS=&lt;br /&gt;
     /usr/src/btier-0.9.9 M=/usr/src/btier-0.9.9 modules&lt;br /&gt;
make[1]: Entering directory `/usr/src/linux-3.8-rc3'&lt;br /&gt;
  CC [M]  /usr/src/btier-0.9.9/btier_main.o&lt;br /&gt;
  LD [M]  /usr/src/btier-0.9.9/btier.o&lt;br /&gt;
  Building modules, stage 2.&lt;br /&gt;
  MODPOST 1 modules&lt;br /&gt;
  CC      /usr/src/btier-0.9.9/btier.mod.o&lt;br /&gt;
  LD [M]  /usr/src/btier-0.9.9/btier.ko&lt;br /&gt;
make[1]: Leaving directory `/usr/src/linux-3.8-rc3'&lt;br /&gt;
gcc -O2 btier_setup.c -o btier_setup &lt;br /&gt;
gcc -O2 tools/writetest.c -o tools/writetest&lt;br /&gt;
&lt;br /&gt;
==BEFORE USING btier==&lt;br /&gt;
btier combines multiple devices to create a btier device.&lt;br /&gt;
This is in a way identical to raid0.&lt;br /&gt;
Therefore failure of one of the devices will cause btier to fail as well.&lt;br /&gt;
&lt;br /&gt;
__I therefore strongly advise to use btier with raid protected volumes.__&lt;br /&gt;
&lt;br /&gt;
btier supports online extension of the device when the underlying devices&lt;br /&gt;
support this as well. For example using a SAN or LVM devices with tier&lt;br /&gt;
would enable your to resize the tier device later on.&lt;br /&gt;
&lt;br /&gt;
==ИСПОЛЬЗОВАНИЕ TIER==&lt;br /&gt;
Now that you have succesfully compiled and installed tier we are ready to use it.&lt;br /&gt;
&lt;br /&gt;
Во-первых загрузить модуль ядра:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;modprobe btier&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
В результате появится новое устройство&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;visible: ls -l /dev/tiercontrol&lt;br /&gt;
crw-rw---- 1 root root 10, 50 2013-01-23 10:21 /dev/tiercontrol&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Все готово для создания блочного блочного устройства btier.&lt;br /&gt;
&lt;br /&gt;
btier позволяет нам использовать реальные блочные устройства или файлы, в качестве частей btier. Простой способ проверить btier - создать несколько файлов и использовать их для создания btier устройства.&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;dd if=/dev/zero of=/tmp/ssd.img bs=1M count=100&lt;br /&gt;
dd if=/dev/zero of=/tmp/sas.img bs=1M count=150&lt;br /&gt;
./btier_setup -f /tmp/ssd.img:/tmp/sas.img -c&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''ВНИМАНИЕ.''' Для создание btier используется опция -c. Не используйте -c после создания btier, так как это сотрет все данные на устройстве!&lt;br /&gt;
&lt;br /&gt;
После btier_setup мы должны иметь новое устройство:&lt;br /&gt;
 &amp;lt;nowiki&amp;gt;ls -l /dev/sdtiera &lt;br /&gt;
brw-rw---- 1 root disk 251, 0 2013-01-23 10:28 /dev/sdtiera&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Теперь вы можете отформатировать устройство с файловой системой по Вашему выбору. btier поддерживает  trim в современных файловых системах.&lt;br /&gt;
Mount the filesystem with -odiscard to use the discard functionality.&lt;br /&gt;
&lt;br /&gt;
==USING TIER==&lt;br /&gt;
Now that you have succesfully compiled and installed tier we are&lt;br /&gt;
ready to use it.&lt;br /&gt;
&lt;br /&gt;
The first step is to load the kernel module:&lt;br /&gt;
  modprobe btier&lt;br /&gt;
After loading the module a new character device should be &lt;br /&gt;
visible: ls -l /dev/tiercontrol&lt;br /&gt;
crw-rw---- 1 root root 10, 50 2013-01-23 10:21 /dev/tiercontrol&lt;br /&gt;
&lt;br /&gt;
We are now ready to create a btier blockdevice.&lt;br /&gt;
&lt;br /&gt;
btier allows us to use either real blockdevices or files to be part&lt;br /&gt;
of the tier. A simple way to test btier is therefore to create some&lt;br /&gt;
files and use them to create the btier device.&lt;br /&gt;
&lt;br /&gt;
Example:&lt;br /&gt;
dd if=/dev/zero of=/tmp/ssd.img bs=1M count=100&lt;br /&gt;
dd if=/dev/zero of=/tmp/sas.img bs=1M count=150&lt;br /&gt;
./btier_setup -f /tmp/ssd.img:/tmp/sas.img -c&lt;br /&gt;
&lt;br /&gt;
Please note that the first time that the tier device is created we&lt;br /&gt;
use -c to initialize the device. Do _not_ use -c afterwards since&lt;br /&gt;
this will erase the data that is stored on the device!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
After btier_setup we should have a new device:&lt;br /&gt;
ls -l /dev/sdtiera&lt;br /&gt;
brw-rw---- 1 root disk 251, 0 2013-01-23 10:28 /dev/sdtiera&lt;br /&gt;
&lt;br /&gt;
You can now format the device with your filesystem of choice.&lt;br /&gt;
Since btier supports discard aka trim a modern filesystem would &lt;br /&gt;
be a good choice. &lt;br /&gt;
&lt;br /&gt;
Mount the filesystem with -odiscard to use the discard functionality.&lt;br /&gt;
&lt;br /&gt;
==TUNING TIER MIGRATION==&lt;br /&gt;
TIER can be controlled via the sysfs interface that it provides.&lt;br /&gt;
Important things to tune are the migration interval and migration&lt;br /&gt;
policy.&lt;br /&gt;
&lt;br /&gt;
The migration interval determines how frequently btier will check if&lt;br /&gt;
data can be migrated from one tier to another.&lt;br /&gt;
&lt;br /&gt;
The default interval is set to 14400 seconds:&lt;br /&gt;
cat /sys/block/sdtiera/tier/migration_interval &lt;br /&gt;
14400&lt;br /&gt;
&lt;br /&gt;
So every 4 hours btier will check if there are blocks that should be&lt;br /&gt;
migrated to a higher or lower tier.&lt;br /&gt;
&lt;br /&gt;
Another sysfs file that play an important role in migration is:&lt;br /&gt;
cat /sys/block/sdtiera/tier/migration_policy &lt;br /&gt;
   tier               device         max_age hit_collecttime&lt;br /&gt;
      0              ssd.img           86400           43200&lt;br /&gt;
      1              sas.img           86400           43200&lt;br /&gt;
&lt;br /&gt;
What this learns us is that tier 0 is a file with the name ssd.img&lt;br /&gt;
Blocks that are stored on tier 0 and have been unused for more then&lt;br /&gt;
86400 seconds will be migrated to tier 1. Any block that is moved&lt;br /&gt;
from tier 1 to tier 0 has a grace period of 43200 seconds before it&lt;br /&gt;
is considered for migration back to tier 1.&lt;br /&gt;
&lt;br /&gt;
You can modify the policy like this:&lt;br /&gt;
echo &amp;quot;0              ssd.img           172800           86400&amp;quot; \&lt;br /&gt;
      &amp;gt;/sys/block/sdtiera/tier/migration_policy&lt;br /&gt;
&lt;br /&gt;
cat /sys/block/sdtiera/tier/migration_policy &lt;br /&gt;
   tier               device         max_age hit_collecttime&lt;br /&gt;
      0              ssd.img          172800           86400&lt;br /&gt;
      1              sas.img           86400           43200&lt;br /&gt;
&lt;br /&gt;
It is also possible to disable migration during peak hours&lt;br /&gt;
since migration will have a performance impact.&lt;br /&gt;
&lt;br /&gt;
echo 0 &amp;gt;/sys/block/sdtiera/tier/migration_enable&lt;br /&gt;
&lt;br /&gt;
To enable migration:&lt;br /&gt;
echo 1 &amp;gt;/sys/block/sdtiera/tier/migration_enable&lt;br /&gt;
&lt;br /&gt;
Please note that when you re-enable migration the process will &lt;br /&gt;
start immediately.&lt;br /&gt;
&lt;br /&gt;
Btier allows us to obtain usage information about the&lt;br /&gt;
1MB chunks that make up a btier device.&lt;br /&gt;
&lt;br /&gt;
First check the number of available blocks:&lt;br /&gt;
cat /sys/block/sdtiera/tier/size_in_blocks&lt;br /&gt;
&lt;br /&gt;
To select a block that you want to learn more about:&lt;br /&gt;
echo [BLOCKNR] &amp;gt;/sys/block/sdtiera/tier/show_blockinfo&lt;br /&gt;
&lt;br /&gt;
* NOTE that the first block is blocknr 0.&lt;br /&gt;
Therefore the last valid block is :&lt;br /&gt;
/sys/block/sdtiera/tier/size_in_blocks - 1&lt;br /&gt;
&lt;br /&gt;
To show blocknr 22 :&lt;br /&gt;
echo 22 &amp;gt;/sys/block/sdtiera/tier/show_blockinfo &lt;br /&gt;
&lt;br /&gt;
And now simply:&lt;br /&gt;
cat /sys/block/sdtiera/tier/show_blockinfo &lt;br /&gt;
0,1048576,1363539405,17,133&lt;br /&gt;
&lt;br /&gt;
When a block is not used and therefore not allocated &lt;br /&gt;
the output will be : -1,0,0,0,0&lt;br /&gt;
&lt;br /&gt;
A simple example of how this interface can be used &lt;br /&gt;
can be found in the tools directory:&lt;br /&gt;
tools/show_block_details.sh&lt;br /&gt;
&lt;br /&gt;
==INFORMATION AND STATISTICS==&lt;br /&gt;
&lt;br /&gt;
btier supports iostat (from the sysstat package).&lt;br /&gt;
For example : iostat 3 3&lt;br /&gt;
&lt;br /&gt;
Linux 2.6.32-45-generic (saturn) 	01/23/2013 	_x86_64_	(4 CPU)&lt;br /&gt;
&lt;br /&gt;
avg-cpu:  %user   %nice %system %iowait  %steal   %idle&lt;br /&gt;
           1.98    0.10    1.16    0.57    0.00   96.20&lt;br /&gt;
&lt;br /&gt;
Device:            tps   Blk_read/s   Blk_wrtn/s   Blk_read   Blk_wrtn&lt;br /&gt;
sda               8.60       433.65       511.16    4732114    5577994&lt;br /&gt;
sdtiera         125.81         0.17       297.70       1886    3248620&lt;br /&gt;
&lt;br /&gt;
You can also see how the underlying devices to tier are used:&lt;br /&gt;
cat /sys/block/sdtiera/tier/device_usage &lt;br /&gt;
   TIER               DEVICE         SIZE MB    ALLOCATED MB   AVERAGE READS  AVERAGE WRITES&lt;br /&gt;
      0              ssd.img             100              95               0             242&lt;br /&gt;
      1              sas.img             150             147               1            8964&lt;br /&gt;
&lt;br /&gt;
==BTIER DEVICE UUID==&lt;br /&gt;
&lt;br /&gt;
The current UUID of the device can be found at:&lt;br /&gt;
cat /sys/block/sdtierX/tier/uuid&lt;br /&gt;
&lt;br /&gt;
==RESIZING BTIER DEVICES==&lt;br /&gt;
&lt;br /&gt;
btier supports online resizing of the device.&lt;br /&gt;
However shrinking of the device is not supported.&lt;br /&gt;
&lt;br /&gt;
When one of the underlying devices has changed in size you can simply signal btier to &lt;br /&gt;
resize as well.&lt;br /&gt;
&lt;br /&gt;
echo 1 &amp;gt;/sys/block/sdtiera/tier/resize&lt;br /&gt;
&lt;br /&gt;
README.resize_devices&lt;br /&gt;
&lt;br /&gt;
==BARRIERS AND PTSYNC==&lt;br /&gt;
&lt;br /&gt;
btier supports barriers in combination with a filesystem that supports it.&lt;br /&gt;
So whenever for example ext4 or xfs issues a barrier request btier will flush&lt;br /&gt;
all data to disk including it's own metadata.&lt;br /&gt;
&lt;br /&gt;
Older filesystems such as ext2 do not support barriers.&lt;br /&gt;
When ptsync is enabled : echo 1 &amp;gt;/sys/block/sdtier[X]/tier/ptsync&lt;br /&gt;
btier will flush all data including it's own metadata to disk when sync() is&lt;br /&gt;
received.&lt;/div&gt;</summary>
		<author><name>imported&gt;Vix</name></author>
	</entry>
</feed>