changelog shortlog graph tags branches changeset files file revisions raw help

Mercurial > org > notes / annotate 20240302.org

changeset 0: 87b04952fb18
child: 04e86b94ef1a
author: Richard Westhaver <ellis@rwest.io>
date: Sun, 28 Apr 2024 19:51:45 -0400
permissions: -rw-r--r--
description: init
0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
1
 * NOTE On blocks and devices
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
2
 :LOGBOOK:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
3
 - State "NOTE"       from              [2024-03-02 Sat 21:30]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
4
 :END:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
5
 [[https://tldp.org/LDP/Linux-Filesystem-Hierarchy/html/dev.html][/dev]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
6
 In Linux, everything is a file.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
7
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
8
 /dev/ contains special device files - usually block or character
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
9
 device.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
10
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
11
 major, minor = category, device
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
12
 0, 5
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
13
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
14
 mknod - create special device files
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
15
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
16
 [[https://www.redhat.com/en/blog/linux-block-devices-hints-debugging-and-new-developments][redhat hints]]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
17
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
18
 #+begin_src shell
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
19
   dd if=/dev/zero of=myfile bs=1M count=32
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
20
   losetup --show -f myfile
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
21
   ls -al /dev/loop0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
22
   losetup -d /dev/loop0 #teardown
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
23
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
24
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
25
 #+begin_src shell
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
26
   echo "sup dude" > /dev/loop0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
27
   dd if=/dev/loop0 -bs=1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
28
   dd if=/dev/nvme0 of=/dev/null progress=true
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
29
   #pacman -S hdparm
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
30
   hdparm -T /dev/nvme0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
31
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
32
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
33
 #+begin_src shell
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
34
 modprobe scsi_debug add_host=5 max_luns=10 num_tgts=2 dev_size_mb=16
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
35
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
36
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
37
 sparsefiles: create with C, dd, or truncate
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
38
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
39
 #+begin_src shell :results output
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
40
 truncate --help
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
41
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
42
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
43
 #+RESULTS:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
44
 #+begin_example
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
45
 Usage: truncate OPTION... FILE...
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
46
 Shrink or extend the size of each FILE to the specified size
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
47
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
48
 A FILE argument that does not exist is created.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
49
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
50
 If a FILE is larger than the specified size, the extra data is lost.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
51
 If a FILE is shorter, it is extended and the sparse extended part (hole)
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
52
 reads as zero bytes.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
53
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
54
 Mandatory arguments to long options are mandatory for short options too.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
55
   -c, --no-create        do not create any files
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
56
   -o, --io-blocks        treat SIZE as number of IO blocks instead of bytes
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
57
   -r, --reference=RFILE  base size on RFILE
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
58
   -s, --size=SIZE        set or adjust the file size by SIZE bytes
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
59
       --help        display this help and exit
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
60
       --version     output version information and exit
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
61
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
62
 The SIZE argument is an integer and optional unit (example: 10K is 10*1024).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
63
 Units are K,M,G,T,P,E,Z,Y,R,Q (powers of 1024) or KB,MB,... (powers of 1000).
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
64
 Binary prefixes can be used, too: KiB=K, MiB=M, and so on.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
65
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
66
 SIZE may also be prefixed by one of the following modifying characters:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
67
 '+' extend by, '-' reduce by, '<' at most, '>' at least,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
68
 '/' round down to multiple of, '%' round up to multiple of.
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
69
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
70
 GNU coreutils online help: <https://www.gnu.org/software/coreutils/>
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
71
 Full documentation <https://www.gnu.org/software/coreutils/truncate>
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
72
 or available locally via: info '(coreutils) truncate invocation'
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
73
 #+end_example
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
74
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
75
 test mkfs.btrfs on 10T dummy block device
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
76
 #+begin_src shell
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
77
   dd if=/dev/zero of=/tmp/bb1 bs=1 count=1 seek=10T
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
78
   du -sh /tmp/bb1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
79
   losetup --show -f /tmp/bb1
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
80
   mkfs.btrfs /dev/loop0
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
81
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
82
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
83
 diagnostics
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
84
 #+begin_src shell
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
85
   iostat # pacman -S sysstat
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
86
   blktrace # paru -S blktrace
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
87
   iotop # pacman -S iotop
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
88
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
89
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
90
 bcc/ trace: Who/which process is executing specific functions against
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
91
 block devices?
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
92
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
93
 bcc/biosnoop: Which process is accessing the block device, how many
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
94
 bytes are accessed, which latency for answering the requests?
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
95
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
96
 at the kernel level besides BPF we got kmods and DKMS,
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
97
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
98
 compression/de-duplication can be done via VDO kernel mod
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
99
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
100
 https://en.wikipedia.org/wiki/Dynamic_Kernel_Module_Support
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
101
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
102
 * NOTE save-lisp-and-respawn
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
103
 :LOGBOOK:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
104
 - State "NOTE"       from              [2024-03-02 Sat 22:57]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
105
 :END:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
106
 #+begin_src lisp
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
107
   sb-ext:*save-hooks*
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
108
 #+end_src
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
109
 
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
110
 * NOTE syslog for log
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
111
 :LOGBOOK:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
112
 - State "NOTE"       from              [2024-03-03 Sun 16:35]
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
113
 :END:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
114
 sb-posix:
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
115
 - openlog syslog closelog
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
116
 - levels: emerg alert crit err warning notice info debug
Richard Westhaver <ellis@rwest.io>
parents:
diff changeset
117
 - setlogmask