Reformatting
This commit is contained in:
parent
57f71f2a8e
commit
e1aa7a681a
@ -12,7 +12,8 @@ Data on disk can be lost due to:
|
|||||||
* hardware error correction insufficiency or complete disk failure - which is
|
* hardware error correction insufficiency or complete disk failure - which is
|
||||||
obvious and can be remedied using multiple copies of same data on multiple
|
obvious and can be remedied using multiple copies of same data on multiple
|
||||||
disks (RAID). RAID for Logical Volumes is provided by @dm-raid@ kernel module
|
disks (RAID). RAID for Logical Volumes is provided by @dm-raid@ kernel module
|
||||||
and offers functionality similar to @mdadm@ utility.
|
and offers functionality similar to @mdadm@ utility,
|
||||||
|
|
||||||
* silent data corruption - when erros slip through disk's error detection
|
* silent data corruption - when erros slip through disk's error detection
|
||||||
mechanisms and remain undetected. Risk can be considerably reduced by using
|
mechanisms and remain undetected. Risk can be considerably reduced by using
|
||||||
checksums of data stored on additional integrity sub-LVs using @dm-integrity@
|
checksums of data stored on additional integrity sub-LVs using @dm-integrity@
|
||||||
@ -21,30 +22,28 @@ Data on disk can be lost due to:
|
|||||||
RAID and integrity can be combined: each RAID sub-LV has its per-sector
|
RAID and integrity can be combined: each RAID sub-LV has its per-sector
|
||||||
checksums stored on integrity sub-LVs. Whenever checksum mismatch detects silent
|
checksums stored on integrity sub-LVs. Whenever checksum mismatch detects silent
|
||||||
data corruption, restoration from uncorrupted source is possible thanks to disk
|
data corruption, restoration from uncorrupted source is possible thanks to disk
|
||||||
redundancy. As of LVM tools 2.03.21 (2023-04-21) detecting which disk holds
|
redundancy. As of LVM tools 2.03.21 (2023-04-21), detecting which disk holds
|
||||||
uncorrputed data would be impossible without @dm-integrity@. Even if
|
uncorrputed data would be impossible without @dm-integrity@. Even if
|
||||||
3-disk-RAID1 or RAID6 is used - which theoretically is enough to find source of
|
3-disk-RAID1 or RAID6 is used - which theoretically is enough to find source of
|
||||||
single sector corruption event - the mechanisms are not implemented. See _man
|
single sector corruption event - the mechanisms are not implemented (see: _man
|
||||||
lvmraid, "Scrubbing Limitations"_.
|
lvmraid, "Scrubbing Limitations"_).
|
||||||
|
|
||||||
|
|
||||||
h3. Setup
|
h3. Setup
|
||||||
|
|
||||||
First create RAID1, then extend it with integrity layer.
|
First create RAID1, then extend it with integrity layer. Integrity block size
|
||||||
|
cannot be smaller than drive's logical sector size and preferably should match
|
||||||
|
file system block size. Even before sync is finished, filesystem can be created
|
||||||
|
on LV:
|
||||||
|
|
||||||
{% highlight bash %}
|
{% highlight bash %}
|
||||||
lvcreate --type raid1 --mirrors 1 -n backup -L 4t vgbackup /dev/sda /dev/sdb
|
# lvcreate --type raid1 --mirrors 1 -n backup -L 4t vgbackup /dev/sda /dev/sdb
|
||||||
{% endhighlight %}
|
# cat /sys/class/block/sda/queue/physical_block_size
|
||||||
|
|
||||||
Integrity block size cannot be smaller than drive's logical sector size and
|
|
||||||
preferably should match file system block size.
|
|
||||||
|
|
||||||
{% highlight bash %}
|
|
||||||
$ cat /sys/class/block/sda/queue/physical_block_size
|
|
||||||
4096
|
4096
|
||||||
$ cat /sys/class/block/nvme0n1/queue/logical_block_size
|
# cat /sys/class/block/nvme0n1/queue/logical_block_size
|
||||||
512
|
512
|
||||||
$ lvconvert --raidintegrity y --raidintegrityblocksize 4096 --raidintegritymode bitmap /dev/vgbackup/backup
|
# lvconvert --raidintegrity y --raidintegrityblocksize 4096 --raidintegritymode bitmap /dev/vgbackup/backup
|
||||||
|
# mkfs.ext4 -b 4096 -O ^has_journal /dev/vgbackup/backup
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
Both operations - creating RAID mirror and adding integrity layer - require
|
Both operations - creating RAID mirror and adding integrity layer - require
|
||||||
@ -54,13 +53,7 @@ initial sync, the progress of which can be monitored:
|
|||||||
lvs -a -o name,segtype,devices,sync_percent
|
lvs -a -o name,segtype,devices,sync_percent
|
||||||
{% endhighlight %}
|
{% endhighlight %}
|
||||||
|
|
||||||
Even before sync is finished, filesystem can be created on LV:
|
Drives can be detached for later synchronization at any time:
|
||||||
|
|
||||||
{% highlight bash %}
|
|
||||||
mkfs.ext4 -b 4096 -O ^has_journal /dev/vgbackup/backup
|
|
||||||
{% endhighlight %}
|
|
||||||
|
|
||||||
and the drives can be detached for later synchronization:
|
|
||||||
|
|
||||||
{% highlight bash %}
|
{% highlight bash %}
|
||||||
vgchange -an vgbackup
|
vgchange -an vgbackup
|
||||||
|
Loading…
x
Reference in New Issue
Block a user