Topic: storage
-
Preparing a new disk in Windows Server: Get-Disk through Format-Volume, and why it starts offline
The PowerShell Storage module sequence from Get-Disk to a mounted, formatted volume — Initialize-Disk -PartitionStyle GPT, New-Partition -UseMaximumSize, Format-Volume, and resizing later with Get-PartitionSupportedSize — plus the SAN policy that leaves some newly attached disks offline by default.
-
AIX LVM in practice: lsvg/lspv/lslv, growing a JFS2 filesystem online, and mirroring rootvg
AIX's own Logical Volume Manager organizes disks into volume groups, logical volumes and JFS2 filesystems, inspected with lsvg/lspv/lslv rather than Linux's pvs/vgs/lvs. Growing a filesystem online is one chfs command; mirroring rootvg for availability is a four-step sequence (extendvg, mirrorvg, bosboot, bootlist), not just mirrorvg.
-
Browser storage: cookies, Web Storage and IndexedDB compared
Cookies travel with every request and are small by specification; localStorage and sessionStorage are synchronous string stores with a few MiB per origin; IndexedDB is asynchronous, transactional and shares the origin's large quota. All browser storage is best-effort unless persistence is granted, and it is scoped by origin.
-
Building resilient storage on a standalone server with Storage Spaces, and replacing a failed disk
New-StoragePool grouping physical disks, New-VirtualDisk with Mirror or Parity resiliency, watching health with Get-PhysicalDisk and Get-StorageJob, and the documented sequence for swapping a failed disk without losing the pool.
-
Disk I/O latency with iostat -x: r_await, w_await, aqu-sz, and why %util misleads on SSD and RAID
iostat -x adds per-device latency and queue fields to the plain throughput view. r_await and w_await separate read from write latency, aqu-sz shows how many requests are outstanding (named avgqu-sz in older sysstat releases), and the sysstat manual itself warns that %util stops meaning saturation on devices that serve requests in parallel.
-
Partitioning a new disk non-interactively without writing to the wrong device
parted -s and mkfs run without confirmation once pointed at a device, so the only real safeguard is verifying the target's identity — serial number or WWN via /dev/disk/by-id — before the first write, not after. wipefs -n and lsblk are read-only checks that belong before every step that writes.
-
Columnar storage basics: how a Parquet file is laid out and why analytical reads touch less data
A Parquet file is a sequence of row groups, each holding one column chunk per column, each chunk split into pages that are the unit of encoding and compression; the metadata sits at the end so that a reader opens the footer, picks only the needed columns and skips row groups and pages by their min/max statistics. Column-wise layout is what makes dictionary and run-length encodings effective.
-
Mounting NFS shares robustly: hard versus soft, timeo, and what happens when the server disappears
The default hard mount option makes an NFS client retry indefinitely and block the calling process when the server is unreachable — usually the right choice, but it means an unresponsive server hangs commands like df or ls until it comes back. x-systemd.automount or nofail keep an unreachable server from hanging the boot.
-
Building a software RAID1 mirror with mdadm and replacing a failed disk
mdadm --create builds a Linux software RAID array from partitions or whole disks; without an entry in mdadm.conf and an updated initramfs the array can fail to reassemble on the next boot even though it works fine right after creation.
-
Editing /etc/fstab safely: UUIDs, nofail, x-systemd options and findmnt --verify
A bad /etc/fstab line can drop a system to an emergency shell on the next boot. This methodology uses UUID= instead of device names, nofail and x-systemd.device-timeout= for optional mounts, and findmnt --verify plus mount -a to test the file before rebooting.
-
Encrypting a data volume with LUKS2: format, open, crypttab, and what a lost header means
cryptsetup luksFormat and luksOpen set up and unlock a LUKS2 volume, and /etc/crypttab makes the unlock happen automatically at boot; a lost passphrase and a lost or damaged LUKS header are both unrecoverable, which is why luksHeaderBackup is a required step, not an optional one.
-
Growing an LVM logical volume and its filesystem online without unmounting
lvextend -r resizes a logical volume and its filesystem in one step while it stays mounted, calling xfs_growfs or resize2fs as appropriate. XFS filesystems can only ever grow, never shrink; this methodology covers the online-growth path for both.
-
Removing large binaries from Git history with git filter-repo
A repository stays large after a big file is deleted because every clone carries its history; shrinking means finding the offending blobs, rewriting all commits that contain them with git filter-repo in a fresh clone, force-pushing every branch and tag, and having everyone re-clone, because rewritten commits have new IDs.
-
Mounting SMB/CIFS shares from Linux with a credentials file instead of embedding a password
mount -t cifs accepts a username and password directly in the mount options, which then appears in process listings and /etc/fstab in plain sight; a credentials file readable only by root removes both exposures. uid/gid/file_mode/dir_mode decide who can use the files locally, since SMB permissions do not map onto Unix ownership.
-
ZFS administration on Solaris 11.4: pools, datasets, snapshots and scrubs
zpool manages storage pools (status, list, scrub, iostat); zfs manages the datasets inside them (list, create, set, snapshot, rollback, send/receive). Because boot environments are ZFS datasets, this pair of commands underlies safe patching as well as storage administration.
-
Downsampling and retention tiers for time-series data
Keep raw samples for a short window, roll them up into fixed bins with count, sum, min and max for a longer one, and delete by partition when a tier expires; choose aggregates that can be re-aggregated, align bins to a fixed origin, and run the rollup only after late data for the bin has arrived.
-
Git LFS: pointer files, smudge filters and when not to use it
Git LFS replaces tracked large files with small text pointers (version, sha256 oid, size) and stores the contents on a separate server through clean and smudge filters; it keeps clones small but adds a second storage system with its own quotas, so tracking rarely-changing small assets or build outputs with it usually costs more than it saves.
Machine-readable: JSON