ksphinx.addnodesdocument)}( rawsourcechildren]( 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 classnameN refexplicitutagnamehhh ubh)}(hhh]hChinese (Traditional)}hh2sbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/zh_TW/admin-guide/blockdev/zoned_loopmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hItalian}hhFsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/it_IT/admin-guide/blockdev/zoned_loopmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hJapanese}hhZsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ja_JP/admin-guide/blockdev/zoned_loopmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hKorean}hhnsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/ko_KR/admin-guide/blockdev/zoned_loopmodnameN classnameN refexplicituh1hhh ubh)}(hhh]hSpanish}hhsbah}(h]h ]h"]h$]h&] refdomainh)reftypeh+ reftarget3/translations/sp_SP/admin-guide/blockdev/zoned_loopmodnameN classnameN refexplicituh1hhh ubeh}(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)}(h 1) Overviewh]h 1) 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)}(hXUsing 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]hXUsing 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)}(hXWhen 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]hXWhen 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhhhhubh)}(hXThe 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]hXThe 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.}(hjhhhNhNubah}(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&]uh1hhj8hhhhhK/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:}(hjIhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK1hj8hhubh 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}hjYsbah}(h]h ]h"]h$]h&]hhuh1jWhhhK6hj8hhubh)}(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:}(hjghhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK=hj8hhubjX)}(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}hjusbah}(h]h ]h"]h$]h&]hhuh1jWhhhK@hj8hhubh)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKDhj8hhubhtable)}(hhh]htgroup)}(hhh](hcolspec)}(hhh]h}(h]h ]h"]h$]h&]colwidthKuh1jhjubj)}(hhh]h}(h]h ]h"]h$]h&]colwidthK:uh1jhjubhtbody)}(hhh](hrow)}(hhh](hentry)}(hhh]h)}(hidh]hid}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hFDevice number (the X in /dev/zloopX). Default: automatically assigned.h]hFDevice number (the X in /dev/zloopX). Default: automatically assigned.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKHhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h capacity_mbh]h capacity_mb}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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).}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKJhj ubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h zone_size_mbh]h zone_size_mb}(hj.hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhj+ubah}(h]h ]h"]h$]h&]uh1jhj(ubj)}(hhh]h)}(h*Device zone size in MiB. Default: 256 MiB.h]h*Device zone size in MiB. Default: 256 MiB.}(hjEhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKMhjBubah}(h]h ]h"]h$]h&]uh1jhj(ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hzone_capacity_mbh]hzone_capacity_mb}(hjehhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKNhjbubah}(h]h ]h"]h$]h&]uh1jhj_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&]uh1hhhhKNhjyubah}(h]h ]h"]h$]h&]uh1jhj_ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h conv_zonesh]h conv_zones}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hDTotal number of conventioanl zones starting from sector 0 Default: 8h]hDTotal number of conventioanl zones starting from sector 0 Default: 8}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKPhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hbase_dirh]hbase_dir}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh]h)}(hXPath 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]hXPath 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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKShjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h nr_queuesh]h nr_queues}(hj hhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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&]uh1hhhhKYhjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h queue_depthh]h queue_depth}(hjAhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hj>ubah}(h]h ]h"]h$]h&]uh1jhj;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}(hjXhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK\hjUubah}(h]h ]h"]h$]h&]uh1jhj;ubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h buffered_ioh]h buffered_io}(hjxhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjuubah}(h]h ]h"]h$]h&]uh1jhjrubj)}(hhh]h)}(h6Do buffered IOs instead of direct IOs (default: false)h]h6Do buffered IOs instead of direct IOs (default: false)}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK^hjubah}(h]h ]h"]h$]h&]uh1jhjrubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(h zone_appendh]h zone_append}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhK_hjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubj)}(hhh](j)}(hhh]h)}(hordered_zone_appendh]hordered_zone_append}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjubah}(h]h ]h"]h$]h&]uh1jhjubj)}(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.}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKehjubah}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]uh1jhjubeh}(h]h ]h"]h$]h&]colsKuh1jhjubah}(h]h ]h"]h$]h&]uh1jhj8hhhhhNubeh}(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}(hj5hhhNhNubah}(h]h ]h"]h$]h&]uh1hhj2hhhhhKnubh)}(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:}(hjChhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKphj2hhubjX)}(h)$ echo "remove id=X" > /dev/zloop-controlh]h)$ echo "remove id=X" > /dev/zloop-control}hjQsbah}(h]h ]h"]h$]h&]hhuh1jWhhhKshj2hhubh)}(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&]uh1hhhhKuhj2hhubh)}(hXA 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]hXA 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.}(hjmhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKwhj2hhubh)}(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~hj2hhubeh}(h]deleting-a-zoned-deviceah ]h"]3) deleting a zoned deviceah$]h&]uh1hhhhhhhhKnubh)}(hhh](h)}(h 4) Exampleh]h 4) Example}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhjhhhhhKubh)}(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:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjX)}(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}hjsbah}(h]h ]h"]h$]h&]hhuh1jWhhhKhjhhubh)}(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):}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjX)}(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 ...}hjsbah}(h]h ]h"]h$]h&]hhuh1jWhhhKhjhhubh)}(hBThe zoned device created (/dev/zloop0) can then be used normally::h]hAThe zoned device created (/dev/zloop0) can then be used normally:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjX)}(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)] ...}hjsbah}(h]h ]h"]h$]h&]hhuh1jWhhhKhjhhubh)}(h0Deleting this device is done using the command::h]h/Deleting this device is done using the command:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjX)}(h)$ echo "remove id=0" > /dev/zloop-controlh]h)$ echo "remove id=0" > /dev/zloop-control}hjsbah}(h]h ]h"]h$]h&]hhuh1jWhhhKhjhhubh)}(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:}(hjhhhNhNubah}(h]h ]h"]h$]h&]uh1hhhhKhjhhubjX)}(h$ rm -r /var/local/zloop/0h]h$ rm -r /var/local/zloop/0}hj sbah}(h]h ]h"]h$]h&]hhuh1jWhhhKhjhhubeh}(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_sourceN current_lineNsettingsdocutils.frontendValues)}(hN generatorN datestampN source_linkN source_urlN toc_backlinksjfootnote_backlinksK sectnum_xformKstrip_commentsNstrip_elements_with_classesN strip_classesN report_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_enabled raw_enabledKline_length_limitM'pep_referencesN pep_base_urlhttps://peps.python.org/pep_file_url_templatepep-%04drfc_referencesN rfc_base_url&https://datatracker.ietf.org/doc/html/ tab_widthKtrim_footnote_reference_spacesyntax_highlightlong smart_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;j8j5j2j/j,jjj3j0u nametypes}(j;j5j/jj3uh}(j8hj2hj,j8jj2j0ju footnote_refs} citation_refs} autofootnotes]autofootnote_refs]symbol_footnotes]symbol_footnote_refs] footnotes] citations]autofootnote_startKsymbol_footnote_startK id_counter collectionsCounter}Rparse_messages]transform_messages] transformerN include_log] decorationNhhub.