k sphinx.addnodesdocument)}( rawsource children](translations
LanguagesNode)}(hhh](h pending_xref)}(hhh]docutils.nodesTextChinese (Simplified)}parenthsba
attributes}(ids]classes]names]dupnames]backrefs] refdomainstdreftypedoc reftarget3/translations/zh_CN/admin-guide/blockdev/zoned_loopmodnameN classnameNrefexplicitutagnamehhhubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/admin-guide/blockdev/zoned_loopmodnameN classnameNrefexplicituh1hhhubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/admin-guide/blockdev/zoned_loopmodnameN classnameNrefexplicituh1hhhubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/admin-guide/blockdev/zoned_loopmodnameN classnameNrefexplicituh1hhhubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/admin-guide/blockdev/zoned_loopmodnameN classnameNrefexplicituh1hhhubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/admin-guide/blockdev/zoned_loopmodnameN classnameNrefexplicituh1hhhubeh}(h]h ]h"]h$]h&]current_languageEnglishuh1h
hh _documenthsourceNlineNubhcomment)}(h SPDX-License-Identifier: GPL-2.0h]h SPDX-License-Identifier: GPL-2.0}hhsbah}(h]h ]h"]h$]h&] xml:spacepreserveuh1hhhhhhM/var/lib/git/docbuild/linux/Documentation/admin-guide/blockdev/zoned_loop.rsthKubhsection)}(hhh](htitle)}(hZoned Loop Block Deviceh]hZoned Loop Block Device}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh)}(hWContents:
1) Overview
2) Creating a Zoned Device
3) Deleting a Zoned Device
4) Exampleh]hWContents:
1) Overview
2) Creating a Zoned Device
3) Deleting a Zoned Device
4) Example}hhsbah}(h]h ]h"]h$]h&]hhuh1hhhhhhhhKubh)}(hhh](h)}(h1) Overviewh]h1) Overview}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhhhhhKubh paragraph)}(hX. The zoned loop block device driver (zloop) allows a user to create a zoned block
device using one regular file per zone as backing storage. This driver does not
directly control any hardware and uses read, write and truncate operations to
regular files of a file system to emulate a zoned block device.h]hX. The zoned loop block device driver (zloop) allows a user to create a zoned block
device using one regular file per zone as backing storage. This driver does not
directly control any hardware and uses read, write and truncate operations to
regular files of a file system to emulate a zoned block device.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX Using zloop, zoned block devices with a configurable capacity, zone size and
number of conventional zones can be created. The storage for each zone of the
device is implemented using a regular file with a maximum size equal to the zone
size. The size of a file backing a conventional zone is always equal to the zone
size. The size of a file backing a sequential zone indicates the amount of data
sequentially written to the file, that is, the size of the file directly
indicates the position of the write pointer of the zone.h]hX Using zloop, zoned block devices with a configurable capacity, zone size and
number of conventional zones can be created. The storage for each zone of the
device is implemented using a regular file with a maximum size equal to the zone
size. The size of a file backing a conventional zone is always equal to the zone
size. The size of a file backing a sequential zone indicates the amount of data
sequentially written to the file, that is, the size of the file directly
indicates the position of the write pointer of the zone.}(hhhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX When resetting a sequential zone, its backing file size is truncated to zero.
Conversely, for a zone finish operation, the backing file is truncated to the
zone size. With this, the maximum capacity of a zloop zoned block device created
can be larger configured to be larger than the storage space available on the
backing file system. Of course, for such configuration, writing more data than
the storage space available on the backing file system will result in write
errors.h]hX When resetting a sequential zone, its backing file size is truncated to zero.
Conversely, for a zone finish operation, the backing file is truncated to the
zone size. With this, the maximum capacity of a zloop zoned block device created
can be larger configured to be larger than the storage space available on the
backing file system. Of course, for such configuration, writing more data than
the storage space available on the backing file system will result in write
errors.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hX The zoned loop block device driver implements a complete zone transition state
machine. That is, zones can be empty, implicitly opened, explicitly opened,
closed or full. The current implementation does not support any limits on the
maximum number of open and active zones.h]hX The zoned loop block device driver implements a complete zone transition state
machine. That is, zones can be empty, implicitly opened, explicitly opened,
closed or full. The current implementation does not support any limits on the
maximum number of open and active zones.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK'hhhhubh)}(h?No user tools are necessary to create and delete zloop devices.h]h?No user tools are necessary to create and delete zloop devices.}(hj" hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK,hhhhubeh}(h]overviewah ]h"]1) overviewah$]h&]uh1hhhhhhhhKubh)}(hhh](h)}(h2) Creating a Zoned Deviceh]h2) Creating a Zoned Device}(hj; hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj8 hhhhhK/ubh)}(hOnce the zloop module is loaded (or if zloop is compiled in the kernel), the
character device file /dev/zloop-control can be used to add a zloop device.
This is done by writing an "add" command directly to the /dev/zloop-control
device::h]hOnce the zloop module is loaded (or if zloop is compiled in the kernel), the
character device file /dev/zloop-control can be used to add a zloop device.
This is done by writing an “add” command directly to the /dev/zloop-control
device:}(hjI hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hj8 hhubh
literal_block)}(h$ modprobe zloop
$ ls -l /dev/zloop*
crw-------. 1 root root 10, 123 Jan 6 19:18 /dev/zloop-control
$ mkdir -p
$ echo "add [options]" > /dev/zloop-controlh]h$ modprobe zloop
$ ls -l /dev/zloop*
crw-------. 1 root root 10, 123 Jan 6 19:18 /dev/zloop-control
$ mkdir -p
$ echo "add [options]" > /dev/zloop-control}hjY sbah}(h]h ]h"]h$]h&]hhuh1jW hhhK6hj8 hhubh)}(hbThe options available for the add command can be listed by reading the
/dev/zloop-control device::h]haThe options available for the add command can be listed by reading the
/dev/zloop-control device:}(hjg hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hj8 hhubjX )}(h$ cat /dev/zloop-control
add id=%d,capacity_mb=%u,zone_size_mb=%u,zone_capacity_mb=%u,conv_zones=%u,base_dir=%s,nr_queues=%u,queue_depth=%u,buffered_io
remove id=%dh]h$ cat /dev/zloop-control
add id=%d,capacity_mb=%u,zone_size_mb=%u,zone_capacity_mb=%u,conv_zones=%u,base_dir=%s,nr_queues=%u,queue_depth=%u,buffered_io
remove id=%d}hju sbah}(h]h ]h"]h$]h&]hhuh1jW hhhK@hj8 hhubh)}(hTIn more details, the options that can be used with the "add" command are as
follows.h]hXIn more details, the options that can be used with the “add” command are as
follows.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhj8 hhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1j hj ubj )}(hhh]h}(h]h ]h"]h$]h&]colwidthK:uh1j hj ubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hidh]hid}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hFDevice number (the X in /dev/zloopX).
Default: automatically assigned.h]hFDevice number (the X in /dev/zloopX).
Default: automatically assigned.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hcapacity_mbh]hcapacity_mb}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hDevice total capacity in MiB. This is always rounded up
to the nearest higher multiple of the zone size.
Default: 16384 MiB (16 GiB).h]hDevice total capacity in MiB. This is always rounded up
to the nearest higher multiple of the zone size.
Default: 16384 MiB (16 GiB).}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hzone_size_mbh]hzone_size_mb}(hj. hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhj+ ubah}(h]h ]h"]h$]h&]uh1j hj( ubj )}(hhh]h)}(h*Device zone size in MiB. Default: 256 MiB.h]h*Device zone size in MiB. Default: 256 MiB.}(hjE hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjB ubah}(h]h ]h"]h$]h&]uh1j hj( ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hzone_capacity_mbh]hzone_capacity_mb}(hje hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjb ubah}(h]h ]h"]h$]h&]uh1j hj_ ubj )}(hhh]h)}(h^Device zone capacity (must always be equal to or lower
than the zone size. Default: zone size.h]h^Device zone capacity (must always be equal to or lower
than the zone size. Default: zone size.}(hj| hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjy ubah}(h]h ]h"]h$]h&]uh1j hj_ ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h
conv_zonesh]h
conv_zones}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hDTotal number of conventioanl zones starting from
sector 0
Default: 8h]hDTotal number of conventioanl zones starting from
sector 0
Default: 8}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hbase_dirh]hbase_dir}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hX Path to the base directory where to create the directory
containing the zone files of the device.
Default=/var/local/zloop.
The device directory containing the zone files is always
named with the device ID. E.g. the default zone file
directory for /dev/zloop0 is /var/local/zloop/0.h]hX Path to the base directory where to create the directory
containing the zone files of the device.
Default=/var/local/zloop.
The device directory containing the zone files is always
named with the device ID. E.g. the default zone file
directory for /dev/zloop0 is /var/local/zloop/0.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(h nr_queuesh]h nr_queues}(hj
hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hsNumber of I/O queues of the zoned block device. This
value is always capped by the number of online CPUs
Default: 1h]hsNumber of I/O queues of the zoned block device. This
value is always capped by the number of online CPUs
Default: 1}(hj! hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hqueue_depthh]hqueue_depth}(hjA hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj> ubah}(h]h ]h"]h$]h&]uh1j hj; ubj )}(hhh]h)}(h2Maximum I/O queue depth per I/O queue.
Default: 64h]h2Maximum I/O queue depth per I/O queue.
Default: 64}(hjX hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjU ubah}(h]h ]h"]h$]h&]uh1j hj; ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hbuffered_ioh]hbuffered_io}(hjx hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hju ubah}(h]h ]h"]h$]h&]uh1j hjr ubj )}(hhh]h)}(h6Do buffered IOs instead of direct IOs (default: false)h]h6Do buffered IOs instead of direct IOs (default: false)}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hj ubah}(h]h ]h"]h$]h&]uh1j hjr ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hzone_appendh]hzone_append}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hEnable or disable a zloop device native zone append
support.
Default: 1 (enabled).
If native zone append support is disabled, the block layer
will emulate this operation using regular write
operations.h]hEnable or disable a zloop device native zone append
support.
Default: 1 (enabled).
If native zone append support is disabled, the block layer
will emulate this operation using regular write
operations.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh](j )}(hhh]h)}(hordered_zone_appendh]hordered_zone_append}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1j hj ubj )}(hhh]h)}(hEnable zloop mitigation of zone append reordering.
Default: disabled.
This is useful for testing file systems file data mapping
(extents), as when enabled, this can significantly reduce
the number of data extents needed to for a file data
mapping.h]hEnable zloop mitigation of zone append reordering.
Default: disabled.
This is useful for testing file systems file data mapping
(extents), as when enabled, this can significantly reduce
the number of data extents needed to for a file data
mapping.}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehj ubah}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]uh1j hj ubeh}(h]h ]h"]h$]h&]colsKuh1j hj ubah}(h]h ]h"]h$]h&]uh1j hj8 hhhhhNubeh}(h]creating-a-zoned-deviceah ]h"]2) creating a zoned deviceah$]h&]uh1hhhhhhhhK/ubh)}(hhh](h)}(h3) Deleting a Zoned Deviceh]h3) Deleting a Zoned Device}(hj5 hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2 hhhhhKnubh)}(hDeleting an unused zoned loop block device is done by issuing the "remove"
command to /dev/zloop-control, specifying the ID of the device to remove::h]hDeleting an unused zoned loop block device is done by issuing the “remove”
command to /dev/zloop-control, specifying the ID of the device to remove:}(hjC hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj2 hhubjX )}(h)$ echo "remove id=X" > /dev/zloop-controlh]h)$ echo "remove id=X" > /dev/zloop-control}hjQ sbah}(h]h ]h"]h$]h&]hhuh1jW hhhKshj2 hhubh)}(h,The remove command does not have any option.h]h,The remove command does not have any option.}(hj_ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKuhj2 hhubh)}(hX A zoned device that was removed can be re-added again without any change to the
state of the device zones: the device zones are restored to their last state
before the device was removed. Adding again a zoned device after it was removed
must always be done using the same configuration as when the device was first
added. If a zone configuration change is detected, an error will be returned and
the zoned device will not be created.h]hX A zoned device that was removed can be re-added again without any change to the
state of the device zones: the device zones are restored to their last state
before the device was removed. Adding again a zoned device after it was removed
must always be done using the same configuration as when the device was first
added. If a zone configuration change is detected, an error will be returned and
the zoned device will not be created.}(hjm hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj2 hhubh)}(hTo fully delete a zoned device, after executing the remove operation, the device
base directory containing the backing files of the device zones must be deleted.h]hTo fully delete a zoned device, after executing the remove operation, the device
base directory containing the backing files of the device zones must be deleted.}(hj{ hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK~hj2 hhubeh}(h]deleting-a-zoned-deviceah ]h"]3) deleting a zoned deviceah$]h&]uh1hhhhhhhhKnubh)}(hhh](h)}(h
4) Exampleh]h
4) Example}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj hhhhhKubh)}(hpThe following sequence of commands creates a 2GB zoned device with zones of 64
MB and a zone capacity of 63 MB::h]hoThe following sequence of commands creates a 2GB zoned device with zones of 64
MB and a zone capacity of 63 MB:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubjX )}(h$ modprobe zloop
$ mkdir -p /var/local/zloop/0
$ echo "add capacity_mb=2048,zone_size_mb=64,zone_capacity_mb=63" > /dev/zloop-controlh]h$ modprobe zloop
$ mkdir -p /var/local/zloop/0
$ echo "add capacity_mb=2048,zone_size_mb=64,zone_capacity_mb=63" > /dev/zloop-control}hj sbah}(h]h ]h"]h$]h&]hhuh1jW hhhKhj hhubh)}(hFor the device created (/dev/zloop0), the zone backing files are all created
under the default base directory (/var/local/zloop)::h]hFor the device created (/dev/zloop0), the zone backing files are all created
under the default base directory (/var/local/zloop):}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubjX )}(hX` $ ls -l /var/local/zloop/0
total 0
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000000
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000001
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000002
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000003
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000004
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000005
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000006
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000007
-rw-------. 1 root root 0 Jan 6 22:23 seq-000008
-rw-------. 1 root root 0 Jan 6 22:23 seq-000009
...h]hX` $ ls -l /var/local/zloop/0
total 0
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000000
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000001
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000002
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000003
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000004
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000005
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000006
-rw-------. 1 root root 67108864 Jan 6 22:23 cnv-000007
-rw-------. 1 root root 0 Jan 6 22:23 seq-000008
-rw-------. 1 root root 0 Jan 6 22:23 seq-000009
...}hj sbah}(h]h ]h"]h$]h&]hhuh1jW hhhKhj hhubh)}(hBThe zoned device created (/dev/zloop0) can then be used normally::h]hAThe zoned device created (/dev/zloop0) can then be used normally:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubjX )}(hX $ lsblk -z
NAME ZONED ZONE-SZ ZONE-NR ZONE-AMAX ZONE-OMAX ZONE-APP ZONE-WGRAN
zloop0 host-managed 64M 32 0 0 1M 4K
$ blkzone report /dev/zloop0
start: 0x000000000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000020000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000040000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000060000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000080000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x0000a0000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x0000c0000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x0000e0000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000100000, len 0x020000, cap 0x01f800, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
start: 0x000120000, len 0x020000, cap 0x01f800, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
...h]hX $ lsblk -z
NAME ZONED ZONE-SZ ZONE-NR ZONE-AMAX ZONE-OMAX ZONE-APP ZONE-WGRAN
zloop0 host-managed 64M 32 0 0 1M 4K
$ blkzone report /dev/zloop0
start: 0x000000000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000020000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000040000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000060000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000080000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x0000a0000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x0000c0000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x0000e0000, len 0x020000, cap 0x020000, wptr 0x000000 reset:0 non-seq:0, zcond: 0(nw) [type: 1(CONVENTIONAL)]
start: 0x000100000, len 0x020000, cap 0x01f800, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
start: 0x000120000, len 0x020000, cap 0x01f800, wptr 0x000000 reset:0 non-seq:0, zcond: 1(em) [type: 2(SEQ_WRITE_REQUIRED)]
...}hj sbah}(h]h ]h"]h$]h&]hhuh1jW hhhKhj hhubh)}(h0Deleting this device is done using the command::h]h/Deleting this device is done using the command:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubjX )}(h)$ echo "remove id=0" > /dev/zloop-controlh]h)$ echo "remove id=0" > /dev/zloop-control}hj sbah}(h]h ]h"]h$]h&]hhuh1jW hhhKhj hhubh)}(hThe removed device can be re-added again using the same "add" command as when
the device was first created. To fully delete a zoned device, its backing files
should also be deleted after executing the remove command::h]hThe removed device can be re-added again using the same “add” command as when
the device was first created. To fully delete a zoned device, its backing files
should also be deleted after executing the remove command:}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhj hhubjX )}(h$ rm -r /var/local/zloop/0h]h$ rm -r /var/local/zloop/0}hj sbah}(h]h ]h"]h$]h&]hhuh1jW hhhKhj hhubeh}(h]exampleah ]h"]
4) exampleah$]h&]uh1hhhhhhhhKubeh}(h]zoned-loop-block-deviceah ]h"]zoned loop block deviceah$]h&]uh1hhhhhhhhKubeh}(h]h ]h"]h$]h&]sourcehuh1hcurrent_sourceNcurrent_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampNsource_linkN
source_urlN
toc_backlinksj footnote_backlinksK
sectnum_xformKstrip_commentsNstrip_elements_with_classesN
strip_classesNreport_levelK
halt_levelKexit_status_levelKdebugNwarning_streamN tracebackinput_encoding utf-8-siginput_encoding_error_handlerstrictoutput_encodingutf-8output_encoding_error_handlerj` error_encodingutf-8error_encoding_error_handlerbackslashreplace
language_codeenrecord_dependenciesNconfigN id_prefixhauto_id_prefixid
dump_settingsNdump_internalsNdump_transformsNdump_pseudo_xmlNexpose_internalsNstrict_visitorN_disable_configN_sourceh_destinationN
_config_files]7/var/lib/git/docbuild/linux/Documentation/docutils.confafile_insertion_enabledraw_enabledKline_length_limitM'pep_referencesNpep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesNrfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlongsmart_quotessmartquotes_locales]character_level_inline_markupdoctitle_xform
docinfo_xformKsectsubtitle_xform
image_loadinglinkembed_stylesheetcloak_email_addressessection_self_linkenvNubreporterNindirect_targets]substitution_defs}substitution_names}refnames}refids}nameids}(j; j8 j5 j2 j/ j, j j j3 j0 u nametypes}(j; j5 j/ j j3 uh}(j8 hj2 hj, j8 j j2 j0 j u
footnote_refs}
citation_refs}
autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK
id_countercollectionsCounter}Rparse_messages]transform_messages]transformerNinclude_log]
decorationNhhub.