Linux伺服器增加硬碟操作記錄

  • 2019 年 12 月 25 日
  • 筆記

概述

最近我們實驗室的GPU伺服器數據空間不夠用了,老師讓我聯繫公司來增加硬碟。我這裡記錄一下對Amax公司生產的GPU伺服器增加硬碟的步驟。 機器的參數:

  1. 作業系統:Ubuntu 14.04
  2. 顯示卡: Nvidia Tesla K80
  3. 機器廠商: Amax
  4. 是否有RAID: 有

配置RAID

RAID(Redundant Array of Independent Disks),即獨立硬碟冗餘陣列,是一種管理較大空間硬碟陣列的方法,常見的RAID方式到RAID 0-RAID 6,簡單的來講可以這樣理解:

  1. RAID 0: 數據不做備份操作,每塊盤都可以存儲數據
  2. RAID 1: 將一半的磁碟作為鏡像磁碟,空間利用率只有50%,但是允許有一半的磁碟壞掉(壞掉後備份盤可以繼續使用)
  3. RAID 5: 使用1塊盤作為備份,別的盤可以正常存取數據 關於RAID 各種方式的細節,可以看這裡。 因為我們想讓數據盤儘可能被充分地利用,所以我們採用RAID 0。 將硬碟插入到插槽後,開機啟動伺服器,就可以進入RAID的設置。在設置頁面中,選擇「Configuration Wizard」開始設置。具體的設置內容可以參看這篇部落格

對硬碟分區

設置好RAID後,重啟進入系統,查看新加的硬碟。 通過sudo fdisk -l可以查看所有連接的系統的硬碟,而df -h則只顯示掛載到系統的硬碟,所以查看前者中有而後者中不存在的硬碟,比如/dev/sdf,就是我們新加的硬碟。 找到新加的硬碟後,我們採用sudo fdisk /dev/sdf命令來對/dev/sdf硬碟創建分區表,輸入該命令後,結果如下:

~ ᐅ sudo fdisk /dev/sdf  Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel  Building a new DOS disklabel with disk identifier 0x083d94fb.  Changes will remain in memory only, until you decide to write them.  After that, of course, the previous content won't be recoverable.    Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)    The device presents a logical sector size that is smaller than  the physical sector size. Aligning to a physical sector (or optimal  I/O) size boundary is recommended, or performance may be impacted.    命令(輸入 m 獲取幫助):

根據提示,我們輸入m,得到如下回饋:

命令操作     a   toggle a bootable flag     b   edit bsd disklabel     c   toggle the dos compatibility flag     d   delete a partition     l   list known partition types     m   print this menu     n   add a new partition     o   create a new empty DOS partition table     p   print the partition table     q   quit without saving changes     s   create a new empty Sun disklabel     t   change a partition's system id     u   change display/entry units     v   verify the partition table     w   write table to disk and exit     x   extra functionality (experts only)    命令(輸入 m 獲取幫助):

可以看到列出了所有可能的選項。我們這裡輸入n,得到輸出:

Partition type:     p   primary (0 primary, 0 extended, 4 free)     e   extended  Select (default p):

因為我們在新加的硬碟上只創建一個分區,而且新加的盤用作數據盤,不會作為啟動分區,所以選Primary 分區和extended分區都沒關係。從這裡開始,我們所有的操作都可以選擇默認,即每次都是按Enter鍵到下一步。到所有設置到完成後,fdisk命令會創建分區,大概需要等1分鐘。

格式化硬碟

創建好分區表後,需要格式化硬碟,將Linux的文件系統應用到硬碟上,硬碟才能存儲數據。格式化硬碟採用的是mkfs命令。 目前Linux常用的文件格式是ext3和ext4,其中ext4是ext3的後續版本,對後者進行了一些改進,例如最大文件變成16TB、最大子目錄數高達64000個等。具體的改進請參考這裡。使用mkfs命令時,可以使用-t 選項制定文件格式。不指定默認的文件格式是ext2。 所以我們這裡的命令是:

sudo mkfs -t ext4 /dev/sdf

對於彈出的問題,選擇y即可,可以看到會寫入inode數等操作,進行格式化。

掛載硬碟

硬碟格式化後,只要掛載到系統就可以正常使用了。接下來的操作就跟插硬碟或U盤到伺服器上時的操作一樣,先創建一個目錄,然後將硬碟掛載到該目錄,然後就可以在掛載後的目錄裡面寫入或讀出文件了,所有操作都在會在硬碟上進行。具體命令如下:

sudo mkdir /data5  sudo mount /dev/sdf /data5  sudo chmod -R 777 /data5

注意最後一步需要修改文件夾的許可權,否則伺服器上的其他用戶沒有讀寫的許可權。

將掛載資訊寫入到fstab

如果只執行了掛載操作而不將硬碟的掛載操作寫入到/etc/fstab中,則下次重啟的時候,需要手動掛載,而用戶對於/data5目錄是無法進行讀寫操作的。所以接下來我們需要將掛載操作命令寫入到/etc/fstab文件中。 fstab命令的寫法有兩種,一種是採用UUID,如:

UUID=8aeec127-62bd-4e7a-2020-5a5024f27a22 /data1 ext4 defaults 0 0

這種格式,其中硬碟對應的UUID號可以通過命令sudo file -sL /dev/sdf得到。關於fstab命令後面參數的含義,請參見我的另一篇部落格。 另外一種格式就是用/dev/sdf來代替UUID,即一條記錄如下:

/dev/sdf /data5 ext4  defaults 0 0

添加該記錄到/etc/fstab文件後,下次重啟,硬碟也會自動掛載。 至此,我們的任務就算大功告成了,希望對你有所幫助。