Regatta Storage (YC F24): เปลี่ยน S3 ให้เป็นระบบไฟล์คลาวด์แบบ POSIX ที่ให้ความรู้สึกเหมือนโลคัล
(news.ycombinator.com)- Regatta Storage เป็นบริการที่ทำให้ใช้สตอเรจที่เข้ากันได้กับ S3 ได้เหมือนระบบไฟล์คลาวด์ที่ซิงก์อัตโนมัติ เหมาะสำหรับจัดการข้อมูลขนาดใหญ่โดยไม่ต้องเพิ่มดิสก์โลคัล
- มุ่งให้เข้าถึงชุดข้อมูลบน S3 ได้โดยตรงในงาน Spark, PyTorch และ pandas เพื่อลด เวลารอดาวน์โหลด และภาระในการเตรียมดิสก์โลคัลขนาดใหญ่
- จุดเริ่มต้นมาจากประสบการณ์ด้านการดำเนินงานสตอเรจที่ Amazon EFS และ Netflix โดยแม้ EFS จะมีข้อดีด้านความเรียบง่ายและการขยายตัวได้ แต่เมื่อย้ายจากดิสก์โลคัลไปยัง NFS ก็ยังมี ปัญหาด้านประสิทธิภาพ เหลืออยู่
- ลูกค้าจะเมานต์ระบบไฟล์ Regatta ผ่าน NFSv3 และอินสแตนซ์แคชของ Regatta จะเชื่อมต่อกับบัคเก็ต S3 ของลูกค้า เพื่อให้ประสิทธิภาพระดับต่ำกว่ามิลลิวินาทีสำหรับการอ่าน·เขียนที่ถูกแคชไว้
- มีการใช้งานกับ Jupyter Notebook แบบ serverless, เลเยอร์แคชแบบกระจายบน S3 และใช้แทน thin-provisioned Ceph boot volume และในอนาคตกำลังพัฒนา โปรโตคอลไฟล์แบบกำหนดเอง อยู่
มอบประสบการณ์ระบบไฟล์บน S3 ที่ให้ความรู้สึกเหมือนโลคัล
- Regatta Storage เป็นระบบไฟล์คลาวด์แบบคิดค่าบริการตามการใช้งาน และซิงก์อัตโนมัติกับ สตอเรจที่เข้ากันได้กับ S3
- เป้าหมายคือเวิร์กโฟลว์ที่สามารถเข้าถึงชุดข้อมูลขนาดใหญ่จาก Spark, PyTorch และ pandas ได้โดยตรง โดยไม่ต้องดาวน์โหลดลงดิสก์โลคัล
- ดูวิดีโอภาพรวมบริการได้ที่ YouTube และสามารถสมัครบัญชีเพื่อทดลองใช้ฟรีได้
- เหตุผลที่ไม่ได้ให้ทดลองโดยไม่ต้องมีบัญชี คือมองว่าไม่เหมาะที่ผู้ใช้ Hacker News จะใช้ระบบไฟล์เดียวกันและบัคเก็ต S3 เดียวกันร่วมกัน
เบื้องหลังการออกแบบจากประสบการณ์กับ EFS
- ผู้ก่อตั้งสร้าง Regatta จากประสบการณ์ 8 ปีที่ Amazon Elastic File System (EFS) และจากการสร้าง·ดำเนินงานสตอเรจคลาวด์ขนาดใหญ่ที่ Netflix และที่อื่น ๆ
- EFS มีข้อดีด้านความเรียบง่ายและการขยายตัวได้ เพราะไม่ต้องประเมินความจุที่ต้องใช้ล่วงหน้าเหมือน S3 แต่ที่ Netflix กลับไม่ได้ถูกใช้งานมากเท่าที่คาด
- แอปพลิเคชันจำนวนมากต้องการระบบไฟล์ POSIX และความต้องการสตอเรจอาจไม่ชัดเจนหรืออาจพุ่งสูงขึ้นอย่างรวดเร็ว
- หลายกรณีต้องการสตอเรจที่คงอยู่ยาวนานกว่าอายุของอินสแตนซ์หรือคอนเทนเนอร์
- ไดรฟ์โลคัลมักถูกโปรวิชันเกินความจำเป็นตามปริมาณการใช้งานที่อาจเกิดขึ้น ทำให้ต้องเสียค่าใช้จ่ายแม้กับ พื้นที่สตอเรจว่าง
- EFS ไม่ได้เหมาะกับทุก workload
- เมื่อย้ายจากดิสก์โลคัลไปยัง NFS บางกรณีเกิด ปัญหาด้านประสิทธิภาพ
- แอปพลิเคชันที่เคยใช้ดิสก์โลคัลเหมือนพื้นที่เก็บข้อมูลชั่วคราว ต้องคอยล้างข้อมูลที่เหลืออยู่ในสตอเรจถาวรด้วยตนเอง
วิธีทำงานของ Regatta และโมเดลแคช
- Regatta ถูกออกแบบเป็นระบบไฟล์แบบ คิดค่าบริการตามการใช้งาน ที่ auto-scale ไปพร้อมกับแอปพลิเคชัน
- ซิงก์อัตโนมัติกับ S3 ในรูปแบบไฟล์เนทีฟ จึงเชื่อมต่อกับชุดข้อมูลเดิมได้
- ข้อมูลไฟล์ที่เพิ่งเขียนก็สามารถใช้งานได้โดยตรงจาก S3
- ข้อมูลที่ไม่ได้ถูกใช้งานอย่างต่อเนื่องจะถูกนำออกจากแคชของ Regatta ทำให้เสียค่าใช้จ่ายเฉพาะสตอเรจ S3 ฝั่ง backend เท่านั้น
- ปัจจุบันลูกค้าเมานต์ระบบไฟล์ Regatta โดยเชื่อมต่อผ่าน NFSv3 เข้ากับฟลีตอินสแตนซ์แคชของ Regatta
- อินสแตนซ์ Regatta เชื่อมต่อกับบัคเก็ต S3 ของลูกค้าในฝั่ง backend
- ให้ประสิทธิภาพระดับต่ำกว่ามิลลิวินาทีสำหรับการอ่านและเขียนที่ถูกแคชไว้
- แคชที่มีความคงทนช่วยให้ไคลเอนต์ไฟล์ทั้งหมดที่เชื่อมต่ออยู่เห็นมุมมองระบบไฟล์ที่มีความสอดคล้องอย่างเข้มงวด
- งานที่จัดการยากอย่างการเปลี่ยนชื่อไดเรกทอรี จะถูกประมวลผลอย่างรวดเร็วและทนทาน แล้วจึงเผยแพร่ไปยังบัคเก็ต S3 แบบอะซิงโครนัส
กรณีใช้งานช่วงแรกและขั้นตอนถัดไป
- ผู้ใช้ช่วงแรกกำลังใช้ Regatta สำหรับเซิร์ฟเวอร์ Jupyter Notebook แบบ serverless สำหรับนักวิจัย AI, เลเยอร์แคชแบบกระจายความหน่วงต่ำบน S3 และใช้แทน thin-provisioned Ceph boot volume
- โปรโตคอลไฟล์แบบกำหนดเอง ที่กำลังพัฒนา มีเป้าหมายให้ได้ประสิทธิภาพใกล้เคียงโลคัลสำหรับ workload ที่มีไฟล์ขนาดเล็ก และให้ประสิทธิภาพแบบ scale-out คล้าย Lustre สำหรับงานข้อมูลแบบกระจาย
1 ความคิดเห็น
ความคิดเห็นใน Hacker News
ความแตกต่างระหว่าง Rclone กับ Regatta Storage คือ Regatta ใช้เลเยอร์แคชความเร็วสูงระหว่างการแก้ไขเปลี่ยนแปลงไฟล์ระบบ เพื่อให้มีความสอดคล้องกันอย่างเข้มงวด ส่วน Rclone ไม่มีเลเยอร์ที่รับประกันความสอดคล้องระหว่างไคลเอนต์แบบขนาน
เป็นหนึ่งในผลิตภัณฑ์ที่เจ๋งที่สุดจาก YC และมีคำถามหลายข้อเกี่ยวกับวิธีการทำงาน
กำลังโฮสต์ DuckDB โดยใช้ GCP Filestore และขอข้อมูลเกี่ยวกับราคาและประสิทธิภาพของ Regatta
สนใจใช้เป็นดิสก์สำรองสำหรับ SQLite/DuckDB/parquet และต้องการการอ่านแบบแคชจากสตอเรจ NVMe ภายในเครื่องของอินสแตนซ์
คิดว่าการใช้ NFS เป็นโปรโตคอลเป็นไอเดียที่ดี
มีความกังวลว่า AWS อาจคัดลอกผลิตภัณฑ์นี้และขายในราคาที่ถูกกว่า
เคยมีประสบการณ์เดโมต่อหน้า CEO ของ Adobe ในปี 2008 โดยถ่ายรูปด้วย iPhone แล้วรูปนั้นปรากฏเป็นไฟล์บน Mac โดยอัตโนมัติได้สำเร็จ
สงสัยว่าสามารถใช้ Lambda + SQLite + Regatta เพื่อสร้าง real-time ACID SQL storage ได้หรือไม่
ยังไม่ชัดเจนว่าจัดการกับการชนกันของการอัปเดตไฟล์อย่างไร
มีทางเลือกที่น่าสนใจอื่น ๆ เช่น s3fs, rclone, goofys เป็นต้น