ทำไมนักเทียบท่าจึงรายงานการใช้งานดิสก์ 100% กับภาพอูบุนตูสด


15

ฉันไม่สามารถใช้ตัวเทียบท่าหรือเรียกใช้รูปภาพใหม่ได้อย่างมีประสิทธิภาพอีกต่อไป - มีรายงานว่าฉันมีการใช้ดิสก์ 100% ที่นี่คุณสามารถเห็นฉันกำลังเปิดตัวสำเนาอูบุนตูที่เก่าแก่และมันก็บอกฉันว่าฉันไม่มีพื้นที่ว่างในดิสก์:

$ docker run -t -i ubuntu /bin/bash
root@3838b70bd76e:/# df -h 
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G   18G     0 100% /
none             19G   18G     0 100% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G   18G     0 100% /etc/hosts
tmpfs          1005M     0 1005M   0% /proc/kcore

แยกกันฉันกำลังพยายามเริ่มอินสแตนซ์ mysql และให้ข้อความแสดงข้อผิดพลาดที่ฉันเชื่อว่าเชื่อมต่อกับความจริงที่ว่าฉันไม่มีดิสก์ที่พร้อมใช้งาน เมื่อฉันพยายามรัน orchardup ​​/ mysql ฉันจะได้รับ:

ERROR: 1030  Got error 28 from storage engine

ซึ่งหมายความว่ามันมีพื้นที่จัดเก็บไม่เพียงพอ

เมื่อได้รับสิ่งนี้ฉันจะตีความรายงาน df -h ด้านบนได้อย่างไรและฉันจะตัดสินได้อย่างไรว่าดิสก์ของฉันใช้เนื้อที่ 100% อย่างไร ฉันใช้นักเทียบท่า 1.3 ทำงานบน OSX 10.9.4 โดยใช้ boot2docker

ขอบคุณ


แก้ไข: เพื่อเป็นวิธีการแก้ปัญหาฉันได้เรียกใช้boot2docker deleteแล้วboot2docker initและดูเหมือนว่าจะมีรูปภาพในถังขยะทั้งหมดของฉัน (โชคดีที่ฉันสามารถสร้างพวกเขาใหม่ด้วยdockerfilesของฉัน) ตอนนี้เมื่อฉันเริ่มภาพอูบุนตูสด:

root@f53d637e3d33:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G  373M   17G   3% /
none             19G  373M   17G   3% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G  373M   17G   3% /etc/hosts
tmpfs          1005M     0 1005M   0% /proc/kcore

ดีขึ้นมาก แต่ฉันยังคงสับสนจะต้องมีดิสก์ส่วนกลางที่ใช้ร่วมกันในทุกภาพที่โฮสต์โดย boot2docker ที่ก่อนหน้านี้เต็ม


แก้ไข 2: ฉันเพิ่งดาวน์โหลดรูปภาพจำนวนมากและตอนนี้ที่นี่คือสิ่งที่ฉันเห็นเมื่อฉันเรียกใช้ภาพอูบุนตูและตรวจสอบพื้นที่ว่างในดิสก์:

root@f53d637e3d33:/# df -h
Filesystem      Size  Used Avail Use% Mounted on
rootfs           19G  2.7G   15G  16% /
none             19G  2.7G   15G  16% /
tmpfs          1005M     0 1005M   0% /dev
shm              64M     0   64M   0% /dev/shm
/dev/sda1        19G  2.7G   15G  16% /etc/hosts
tmpfs          1005M     0 1005M   0% /proc/kcore

จาก 3% ถึง 16% ที่ใช้! เห็นได้ชัดว่ามีดิสก์ที่ใช้ร่วมกันบางชนิดระหว่างรูปภาพทั้งหมดที่ฉันไม่เข้าใจ ...


คุณใช้คอนเทนเนอร์ Docker อย่างไรและผู้ใช้ / กลุ่มกระจายตัวอย่างไร (มากกว่าข้อผิดพลาด mysql) นอกจากนี้สำหรับนักเทียบท่าพวกเขาแบ่งปันอะไรบนโฮสต์หรือพวกเขามีอยู่จริง ๆ ?
linuxdev2013

คำตอบ:


1

บนโฮสต์ windows, boot2docker ทำงานโดยการสร้างเครื่องเสมือนโดยใช้กล่องเสมือน เมื่อคุณรัน boot2docker init มันจะสร้างเครื่องเสมือนและตามค่าเริ่มต้นจะกำหนด 20G ให้กับดิสก์รูท เครื่องเสมือนนี้ใช้งานระบบปฏิบัติการลีนุกซ์ขั้นต่ำซึ่งเปิดใช้งาน docker daemon จริง (docker daemon ยังไม่ได้ทำงานบน Windows - แต่อย่างใด)

ดิสก์ที่เชื่อมต่อกับเครื่องเสมือนจะให้ที่เก็บข้อมูลสำหรับอิมเมจ docker ดังนั้นคุณสามารถดูตัวเลือกเพิ่มเติมเพื่อคำสั่ง boot2docker init เพื่อเพิ่มขนาดดิสก์เริ่มต้น สิ่งนี้จะเพิ่มขนาดของดิสก์ที่มีอยู่สำหรับใช้ในเครื่องเสมือน แต่เมื่อ Queasy ชี้ให้เห็นคุณจะต้องเพิ่มตัวเลือกเพิ่มเติมให้กับ docker daemon เพื่อเพิ่มที่เก็บข้อมูลสำหรับรูปภาพ

เมื่อคุณรัน "df -h" ในคอนเทนเนอร์ขนาดดิสก์ทั้งหมดที่รายงานคือพื้นที่ดิสก์ที่จัดสรรให้กับ docker daemon โดยใช้ตัวเลือก "dm.basesize"

หมายเหตุ: ตอนนี้ boot2docker เลิกใช้แล้วกับ Docker Toolbox คุณอาจต้องการอัพเกรดเป็นเวอร์ชั่นนั้นในกรณีนี้คุณจะต้องใช้ "นักสร้างเครื่องสร้าง" แทนที่จะเป็น "boot2docker init" ฉันสลับไปที่กล่องเครื่องมือนักเทียบท่าดังนั้นไม่สามารถทดสอบตัวเลือกคำสั่งที่จำเป็นสำหรับ boot2docker init


0

แก้ไขการตั้งค่าตัวเทียบท่าใน / etc / sysconfig / docker-storage และเพิ่มบรรทัด:

DOCKER_STORAGE_OPTIONS= --storage-opt dm.basesize=30G

อย่าลืมสำรองข้อมูลนักเทียบท่าของคุณก่อนดำเนินการกับงานนี้เนื่องจากจะลบข้อมูลของคุณเมื่อเริ่มต้นแล้ว


--storage-optไม่รองรับ OSX
Quanlong

0

พิจารณาว่าไดรฟ์อาจไม่ดี ทุกโปรแกรมของ Hitachi (Drive Fitness Test), Seagate (Seatools) และ Western Digital (Western Digital Data Lifeguard) ให้บริการตรวจวินิจฉัยฟรี

ตัวอย่างของไดรฟ์ที่ไม่ดีสามารถหมุนด้วยพื้นที่ดิสก์ฉันได้สำรองไดรฟ์ 1TB ที่รายงานไปยัง Windows ว่าพวกเขายังมีข้อมูลของPETABYTESเหลือสำหรับการถ่ายโอน

ในกรณีที่ไดรฟ์ของคุณใช้ได้ให้ใช้ du (การใช้งานดิสก์) เพื่อดูว่าโฟลเดอร์ใดมีขนาดใหญ่ du -h /usr/bin, du -h /varหรือdu -h /home/[username]/Downloadsช่วยหามัน

แก้ไข: ฉันเห็นว่าคุณกำลังใช้ OS X: คุณจะต้องใช้เครื่องมือ HDD ที่กล่าวถึงข้างต้นเป็นตัวเลือกที่สามารถบู๊ตได้หรือในบางสิ่งเช่น Windows PE ฟรีซึ่งคุณสามารถบูตและเรียกใช้เครื่องมือเหล่านี้ได้


0

devicemapper เป็นเอ็นจิ้นการจัดเก็บข้อมูลเริ่มต้นของนักเทียบท่า มันพยายามจัดสรรล่วงหน้า 100Gb เป็นค่าเริ่มต้นใน / var / lib / docker ไม่ได้ใช้พื้นที่ทั้งหมดนี้จริงๆและคุณสามารถกำหนดค่าได้ในตัวเลือก เอกสารนักเทียบท่า

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.