1 * On blocks and devices 3 :ID: c8304ae3-415d-4ccf-8f4c-1f3f6a555e5b 6 - State "NOTE" from [2024-03-02 Sat 21:30] 8 [[https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/dev.html][/dev]] 9 In Linux, everything is a file.
11 /dev/ contains special device files - usually block or character
14 major, minor = category, device
17 mknod - create special device files
19 [[https://www.redhat.com/en/blog/linux-block-devices-hints-debugging-and-new-developments][redhat hints]] 22 dd if=/dev/zero of=myfile bs=1M count=32
23 losetup --show -f myfile
25 losetup -d /dev/loop0 #teardown
29 echo "sup dude" > /dev/loop0
30 dd if=/dev/loop0 -bs=1
31 dd if=/dev/nvme0 of=/dev/null progress=true
37 modprobe scsi_debug add_host=5 max_luns=10 num_tgts=2 dev_size_mb=16
40 sparsefiles: create with C, dd, or truncate
42 #+begin_src shell :results output 48 Usage: truncate OPTION... FILE...
49 Shrink or extend the size of each FILE to the specified size
51 A FILE argument that does not exist is created.
53 If a FILE is larger than the specified size, the extra data is lost.
54 If a FILE is shorter, it is extended and the sparse extended part (hole)
57 Mandatory arguments to long options are mandatory for short options too.
58 -c, --no-create do not create any files
59 -o, --io-blocks treat SIZE as number of IO blocks instead of bytes
60 -r, --reference=RFILE base size on RFILE
61 -s, --size=SIZE set or adjust the file size by SIZE bytes
62 --help display this help and exit
63 --version output version information and exit
65 The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
66 Units are K,M,G,T,P,E,Z,Y,R,Q (powers of 1024) or KB,MB,... (powers of 1000).
67 Binary prefixes can be used, too: KiB=K, MiB=M, and so on.
69 SIZE may also be prefixed by one of the following modifying characters:
70 '+' extend by, '-' reduce by, '<' at most, '>' at least,
71 '/' round down to multiple of, '%' round up to multiple of.
73 GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
74 Full documentation <https://www.gnu.org/software/coreutils/truncate>
75 or available locally via: info '(coreutils) truncate invocation'
78 test mkfs.btrfs on 10T dummy block device
80 dd if=/dev/zero of=/tmp/bb1 bs=1 count=1 seek=10T
82 losetup --show -f /tmp/bb1
88 iostat # pacman -S sysstat
89 blktrace # paru -S blktrace
90 iotop # pacman -S iotop
93 bcc/ trace: Who/which process is executing specific functions against
96 bcc/biosnoop: Which process is accessing the block device, how many
97 bytes are accessed, which latency for answering the requests?
99 at the kernel level besides BPF we got kmods and DKMS,
101 compression/de-duplication can be done via VDO kernel mod
103 https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support
105 * save-lisp-and-respawn 107 :ID: e58a96e7-7b88-4e4a-b958-3000603d8baa 110 - State "NOTE" from [2024-03-02 Sat 22:57] 118 :ID: 2efa5e4a-f063-49bb-9e61-6917eb115c1a 121 - State "NOTE" from [2024-03-03 Sun 16:35] 124 - openlog syslog closelog
125 - levels: emerg alert crit err warning notice info debug