Home | Back


การขยาย Storage ของ Docker Container

Thursday, 11 September 2014



ในการใช้งาน OS-Level Virtualization อย่าง Docker นั้น เมื่อเราสร้าง Container แล้ว ตัว Container จะมีขนาดของ Storage ตั้งต้นที่ 10G ซึ่งพอเพียงกับการใช้งานปกติ แต่หากมีความต้องการใช้ Storage ที่มากกว่านั้น เราสามารถขยายขนาดของ Container ได้ดังนี้ครับ

1. ตรวจสอบ Mapper Pool ของ Container

ในการทำงานของ Container นั้นจะมีการ Map Storage ของ Container ที่กำลังทำงานเข้าไปที่ /dev/mapper/docker* ให้เราตรวจสอบว่า Container ที่เราต้องการขยายนั้น ใช้ mapper อันไหน โดยให้เข้าไปที่ Container ที่กำลังทำงาน แล้วใช้คำสั่งดังนี้ครับ

จะเห็นว่าที่ / นั้นจะ mount กับ /dev/mapper/docker-8:2-2885995-25bff42b4813b6f3e0f94dc4ec24d5bea3d356d4febaec63aa0d6dd66130421e จะเป็นรหัสของ storage ของ Container ที่เราจะขยายครับ

ต่อไปให้เรากลับไปที่ Host เราจะทำการตรวจสอบพารามิเตอร์ของ Mapper ของเราด้วยคำสั่งดังนี้ครับ

เราจะเห็นตัวเลข 20971520 ซึ่งเป็นขนาดของ Storage ของ Container ของเราในหน่วยของ 512 bytes เพราะฉะนั้นจะเห็นว่า Storage นี้จะมีขนาด 20971520 * 512 = 10737418240 bytes ซึ่งก็คือ 10G นั่นเอง

2. ปรับขนาดของ Mapper Pool ของ Container

ขั้นตอนต่อไปเราจะทำการปรับขนาดของ Storage โดยสมมุติว่าเราต้องการขนาด 20G ให้แปลงจำนวน 20G นี้ให้อยู่ในรูปของหน่วย 512 bytes ดังนี้ครับ 20G = 20 * 1024 * 1024 * 1024 / 512 = 41943040 และทำการปรับค่าพารามิเตอร์ของ Mapper โดยให้เปลี่ยนเฉพาะขนาดเท่านั้น ค่าพารามิเตอร์อื่นให้คงเดิมไว้ดังนี้ครับ

จากนั้นปรับขนาดของ File System ดังนี้ครับ

เท่านี้ขนาดของ Container ก็จะขยายเป็น 20G แล้วครับ เมื่อเราเข้าไปใน Container และตรวจสอบขนาดของ / แล้วจะพบว่าขยายเป็น 20G แล้วครับ ดังนี้

เรียบร้อยโรงเรียนไทยครับ :)



Home | Back