Skip to main content

Basic Concepts: Linux Disks

Disk Interface

  • IDE (ATA): Bandwidth is 133 Mbps. IOPS is ~100. The interface can connect maximum 2 disks.

  • SCSI: IOPS is ~ 150. It can connects 8 or 16 disks

    • Ultrascsi320 - 320 MB/s

    • Ultrascsi640 - 640 MB/s

  • SATA: Bandwidth is 6 Gbps. IOPS is ~150. It can connects to 8 or 16 disks.

  • SAS: Bandwidth is 6 Gbps. IOPS is ~200. It can connects to 8 or 16 disks.

  • USB: Bandwidth is 480 MB/s. IOPS is vary.

Linux Disks

Disk (Device) Types

Block: Can be accessed randomly. Unit is "block".

Character: Can be accessed sequentially. Unit is "character".

Disk Files (FHS)

Files are under '/dev/'. Every disk (device) is file on Linux environment.

Device ID:

Major: Primary device ID. To identify device type for proper drivers.

Minor: Secondary device ID. It's the entree of specific device of same type of device.

Create new device:

# mknode

[root@centos] mknode /dev/usbtest b 100 231 
[root@centos] ll | grep test
brw-r--r--. 1 root root 100, 231 Jul 1 11:02 usbtest

Disk Name

It's assigned by ICANN.

IDE: /dev/hd[a-z]

SCSI/SATA/USB/SAS: /dev/sa[a-z][0-9]

There are 3 identifications below. You also can identify disks by go to /dev/disk/by-*.

  • Device file name

  • Volume labels

  • UUIDs

Disk Partition

MBR: Master Boot Record. It stars on sector 0. Size is 512 bytes. It consist of 3 parts:

  • Bootloader and boot applications. Size is 446 bytes.

  • Partition tables. Maximum 4 tables. 16 bytes each. Size is 64 bytes.

  • MBR availability mark. '55AA' means "active". Size is 2 bytes.

The maximum 'Primary' partition tables are 4. If you need more than 4 partitions, you need to create 'Extend' partition as the last partition of the 4, then create 'Logical partitions' on top of 'Extend partition'. Labels of the 4 are start from 1 to 4. 'Logical partitions' always starts from 5.

Popular posts from this blog

Connect-NsxtServer shows "Unable to connect to the remote server"

When you run Connect-NsxtServer in the PowerCLI, it may show "Unable to connect to the remote server".  Because the error message is a little bit confusing with other login issues. It's not easy to troubleshoot. The actual reason is the NSX-T uses a self-signed certificate, and the PowerCLI cannot accept the certificate automatically. The fix is super easy. You need to set the PowerCLI to ignore the invalid certificate with the following command: Set-PowerCLIConfiguration -Scope User -InvalidCertificateAction:Ignore -Confirm:$false

Setup Terraform and Ansible for Windows provisionon CentOS

Provisioning Windows machines with Terraform is easy. Configuring Windows machines with Ansible is also not complex. However, it's a little bit challenging to combine them. The following steps are some ideas about handling a Windows machine from provisioning to post configuration without modifying the winrm configuration on the guest operating system. Install required repos for yum. yum -y install yum -y install yum -y install yum -y install epel-release yum -y install yum-utils yum-config-manager --add-repo Install  Terraform . sudo yum -y install terraform Install  Ansible . sudo yum -y install ansible Install  Kerberos . yum -y install gcc python-devel krb5-devel krb5-libs krb5-workstation

How to List All Users in Terraform Cloud

Terraform has a rich API. However, the API documentation does not mention how to list all users. We can leverage the organization membership API and the PowerShell command  Invoke-RestMethod  to get a user list. 1. Create an organization token in Terraform Cloud. 2. Create the token variable ( $Token ) in PowerShell. $Token = "abcde" 3. Create the API parameters variable in PowerShell. $params = @{ Uri = "" Authentication = "Bearer" Token = $Token ContentType = "application/vnd.api+json" } Note: You need to replace ZHENGWU with your own organization name. And I used 100 at the end of the URI to retrieve the first 100 users. It can be any number.  4. Retrieve the API return and list the user's email address. $Test = Invoke-RestMethod @params $