SlideShare ist ein Scribd-Unternehmen logo
1 von 32
Система распределенного,
 масштабируемого и высоконадежного
 хранения данных для виртуальных
 машин (и не только)
                            HighLoad++, 22-23 октября 2012




Kirill Korotaev
VP of Advanced Research, Parallels
Prehistory
Virtualization & needs




          1. VM migration   2. HA on failures



                            3
SAN storage

      Redundancy
      High availability
      Monitoring
      Self healing
      Reliability
      Fiber channel
      Performance




                          4
SAN

local




        How to get best of 2
             worlds?


100$                           100,000$


                   5
Idea of maximum simplification
Focus on needed capabilities is a key to success
From required capability to consistency
Consistency - “some well defined and understandable order” of operations.
Required for real file systems (NTFS, etx3/4,…) cause they use and rely on
these properties of real disks.



                         A
                         B                      A        B
              Journal                               Metadata



   •   Immediate/Strict consistency
   •   Sequential consistency (all observers see the same order)
   •   Eventual consistency (no time guarantees, most object storages)
   •   Weak consistency (only synchronization primitives define order)




                                        7
We want grow on demand also…
• Grow on demand means ability to allocate more then locally
  available (>HDD or no free space)
• Requires split of data into pieces
• Probability(any of N computer failure) is increasing with N 
• So redundancy/replication and auto recovery is a MUST
• But recovery can be done in parallel (~1TB in 10mins)
• Good news is that MTTF ~1/T2, where T is recovery time.
• So let’s split all objects to chunks (64Mb)
• Replicate chunks, not objects
• Spread chunks over the cluster to reduce recovery T
• Need to take into account topology of cluster 

                               8
More ideas
Simplifications:
• No need for POSIX FS
• Optimize for big objects only
• Can assume infrequent/slow metadata updates

Major assumption:
• Shit happens: servers die, even DC can crash




                            9
Why consistency is not easy? Replication…

Simplest case: object is fully stored on a single node                   Object

Next step: object is replicated, i.e. multiple instances present
                                                                     t
 Server1         v1       v2


 Server2         v1       v2     DC crash

 Server3         v1                         v1           Stale data can be read!




                                            10
Why consistency is not easy? Data striping…

Splitting data into chunks leads to similar issues as replication:
    File     =    c1v1         c2v1

                                                                               t
                                      write   write

Server1           c1v1
Server2          c1v1                 c1v2




                                                      DC crash
Server3           c1v1                c1v2
                                                                    actual state is
Server4             c2v1                                               c1v2+c2v2,
Server5                 c2v1                   c2v2              but all combinations
Server6             c2v1                       c2v2               civj can be found


Note: c1v1 or/and c2v1 should never be read!


                                                11
So why consistency is not easy?
Data versioning is crucial and should be attributed
to data, plus heavily checked on operations!
Problems with versions:
1. Tracking versions requires transactions support and sync operations.
   SLOW! 
2. Can’t store versions near data only! Node can not decide alone whether
   it’s uptodate or not.

Solution:
1. Let’s update version only when some server can’t complete write! And
   leave it constant on successful data modifications.
2. To solve #2 let’s store versions on metadata servers (MDS) – authority
   which tracks full cluster state. It should be reliable and HA.




                                      12
Design
Overall design
                                       Meta Data Server (MDS)
                                         • Metadata database
                                         • Chunks and versions tracker
                                         • HA
             …

         Clients
                                                         MDS
      Chunk Server (CS)         Ethernet
      • Stores data (chunks)
      • Chunk management
      • READ/WRITE


 CS     CS         CS      CS       CS                   CS
                                                …                 CS


                                  14
Magic (MetaData) Server HA

• Single point of failure => need HA…
• Ouch, but we don’t want replicated DB, MySQL or Oracle…
  It’s a nightmare to manage. Not scalable.
• Database adds noticeable latency per chunk access


    We have to create our own replicated DB for MDS




                            15
Meta Data Server database
 Ideas from GoogleFS:

                               • ~128 byte per chunk
                               • 64Mb RAM describe ~32 Terabytes
      Full state in memory       chunks


        Commit deltas
                             • Journal stores modification records
                             • It’s growing, so need compacting
             Local             method
             Local
            journal          • To compact in background, need
            journal            memory snapshotting
                             • Journal and state can be synced to
                               outdated nodes




                              16
Meta Data Server database compacting


                  Full state in memory




                     Snap-               Snap-
                      shot                shot

         Local
        journal
                       New                 New
                     journal             journal




                               17
PAXOS algorithm
The Part-Time Parliament, Leslie Lamport:
• The Island of Paxos, parliament government
• Legislators are traders, travel a lot and often not present in
  chamber
• They used non-reliable messengers for notifications and
  communication
• Decree is adopted using ballots, need majority of votes
• Legislators are each having it’s own journal of records
• Consistency of decrees is required
• Add/removal of legislators is needed
• Progress is needed

                                18
Performance
Chunk server performance tricks
 Write requests are split (64k) and chained:
                  Chained write



                                  CS              CS                CS




Write 256Kb req                   Completion                             t

      64k

                                        1 server, 256K write
                                        3 servers, 256K split/chained write
                                                                    3 servers, dumb

                                          20
SSD caching on clients
    • SSD bursts performance > 10x times
    • Caching on 2nd read access only to avoid excessive caching
    • Detect sequential access and avoid caching
                                         {fileID, offset}
       8-way hash                        generation
       and LRU                           blockid
                            …
                                         accesstime
• 3 parts: filter (RAM), cache, boot cache (1/8, 100MB / 2min)
• Sequential access detection relies on access time
• Write simply invalidates cached blocks
• Avoid interlaced reads: remote block, cached, remote,
  cached
• Writes (caching) affect reads performance (user I/O)

                                 21
SSD journaling at CS

• Bursts write performance, async commit to rotational drives
• Allows to implement data check summing and scrubbing
• Reason: major difference from object storages –
  performance and latency are very noticeable and important.
  Latency is not hidden by WAN.




                              22
Summary
Final result

Storage system:
• With file system interface, scalable to Petabytes
• Suitable for running VMs and Containers, Object Storage,
  shared hosting and other needs
• SAN like performance over ethernet networks:
  •   13K IOPS on 14 machines cluster (4 SATA HDD each)
  •   600K IOPS with SSD caching
  •   1TB drive recovery takes 10 minutes!




                                  24
Some experience to share

• Asynchronous non-blocking design
• QA: unit tests and stress testing are the must
• QA: how to emulate power off? SIGSTOP+SIGCONT/KILL.
   • It hangs connections and avoids RESETs as if host
     disappeared
• Drives/RAIDs/SSDs lie about FLUSHes.
• SSD write performance depends on data. Beware compression
  inside.
• Checksum everything (4GB/sec) and validate HW memtest86




                              25
Some experience to share

• All queues should be limited and controlled, like in TCP
  congestion control is required (both for memory limit and latency
  control, i.e. IO queue length)
  •   One client can fire Nx4K random requests and effectively it’s equivalent to
      1MB requests. Congestion should be calculated correctly (taking into
      accoung quality of queue).
• In addition to queues limit FDs/connections etc.
• Linux sync() / syncfs() is not usable
• Linux fdatasync() is 3.5-4x faster then fsync(), but should not be
  used when file size changed.
• Replication should be done by pairs



                                         26
Some experience to share

• Cluster identity: unique ID and name
• Cluster resolving: DNS, manual and zeroconf

• Interesting OSDI’12 Microsoft Research storage: uniform network
  topology, 2GB/sec per client, sorting world record 1.4TB in
  ~60sec.




                                27
Object storage

                 Image: ext4 filesystem

      Object                 Object       Object




                           28
Object storage

                 Image: ext4 filesystem

      Object                 Object       Object




                           29
Object storage


                                                     Image: ext4 filesystem
                                                Object            O           O




                                                                      Image: ext4 filesystem
      Image: ext4 filesystem
                                                                Object             O            O
  Object           O           O


                                                                                                    Image: ext4 filesystem
                                                                                               Object            O           O
                                   Image: ext4 filesystem
                               Object           O           O



                                                                                       Image: ext4 filesystem
                                                                                  Object                O        O




                                                                30
Thank You

Kirill Korotaev dev@parallels.com

Try Parallels Cloud Server 6.0 beta2 at
http://www.parallels.com/product/pcs




                                    31
Parallels - лидер на международном рынке в своих сегментах

• Автоматизация оказания              • Виртуализация ПК и Mac
  облачных сервисов                   • 3 млн. ПК во всем мире
• 10 млн. СМБ в 125 странах           • 81% рынка в розничных сетях США


Работа в Parallels - от программирования в ядрах ОС до
создания web интерфейсов и мобильных приложений


• Интересные проекты                    • Процесс разработки
                                          мирового класса
• Работа бок о бок с
  легендами ИТ-                         • Карьера, опционы
  индустрии
              Присоединяйся к лучшим! Job@parallels.com


                               • 32

Weitere ähnliche Inhalte

Was ist angesagt?

MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Corporation
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverJohn Paulett
 
Glusterfs for sysadmins-justin_clift
Glusterfs for sysadmins-justin_cliftGlusterfs for sysadmins-justin_clift
Glusterfs for sysadmins-justin_cliftGluster.org
 
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...Виталий Стародубцев
 
Advanced mysql replication for the masses
Advanced mysql replication for the massesAdvanced mysql replication for the masses
Advanced mysql replication for the massesGiuseppe Maxia
 
Red Hat Gluster Storage Performance
Red Hat Gluster Storage PerformanceRed Hat Gluster Storage Performance
Red Hat Gluster Storage PerformanceRed_Hat_Storage
 
Introduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and ConsistencyIntroduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and ConsistencyBenjamin Black
 
Software defined storage
Software defined storageSoftware defined storage
Software defined storageGluster.org
 
Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013MariaDB Corporation
 
Scott Schnoll - Exchange server 2013 high availability and site resilience
Scott Schnoll - Exchange server 2013 high availability and site resilienceScott Schnoll - Exchange server 2013 high availability and site resilience
Scott Schnoll - Exchange server 2013 high availability and site resilienceNordic Infrastructure Conference
 
Filesystem Comparison: NFS vs GFS2 vs OCFS2
Filesystem Comparison: NFS vs GFS2 vs OCFS2Filesystem Comparison: NFS vs GFS2 vs OCFS2
Filesystem Comparison: NFS vs GFS2 vs OCFS2Giuseppe Paterno'
 
Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...
Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...
Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...Gluster.org
 
Voldemort on Solid State Drives
Voldemort on Solid State DrivesVoldemort on Solid State Drives
Voldemort on Solid State DrivesAmy W. Tang
 
[B4]deview 2012-hdfs
[B4]deview 2012-hdfs[B4]deview 2012-hdfs
[B4]deview 2012-hdfsNAVER D2
 
Migrating to XtraDB Cluster
Migrating to XtraDB ClusterMigrating to XtraDB Cluster
Migrating to XtraDB Clusterpercona2013
 
Coordinating Metadata Replication: Survival Strategy for Distributed Systems
Coordinating Metadata Replication: Survival Strategy for Distributed SystemsCoordinating Metadata Replication: Survival Strategy for Distributed Systems
Coordinating Metadata Replication: Survival Strategy for Distributed SystemsKonstantin V. Shvachko
 

Was ist angesagt? (20)

MariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly AvailableMariaDB Galera Cluster - Simple, Transparent, Highly Available
MariaDB Galera Cluster - Simple, Transparent, Highly Available
 
PostgreSQL Scaling And Failover
PostgreSQL Scaling And FailoverPostgreSQL Scaling And Failover
PostgreSQL Scaling And Failover
 
Glusterfs for sysadmins-justin_clift
Glusterfs for sysadmins-justin_cliftGlusterfs for sysadmins-justin_clift
Glusterfs for sysadmins-justin_clift
 
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
Технологии работы с дисковыми хранилищами и файловыми системами Windows Serve...
 
Advanced mysql replication for the masses
Advanced mysql replication for the massesAdvanced mysql replication for the masses
Advanced mysql replication for the masses
 
Red Hat Gluster Storage Performance
Red Hat Gluster Storage PerformanceRed Hat Gluster Storage Performance
Red Hat Gluster Storage Performance
 
Storage spaces direct webinar
Storage spaces direct webinarStorage spaces direct webinar
Storage spaces direct webinar
 
Scaling DNS
Scaling DNSScaling DNS
Scaling DNS
 
Introduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and ConsistencyIntroduction to Cassandra: Replication and Consistency
Introduction to Cassandra: Replication and Consistency
 
Software defined storage
Software defined storageSoftware defined storage
Software defined storage
 
Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013Galera cluster - SkySQL Paris Meetup 17.12.2013
Galera cluster - SkySQL Paris Meetup 17.12.2013
 
Scott Schnoll - Exchange server 2013 high availability and site resilience
Scott Schnoll - Exchange server 2013 high availability and site resilienceScott Schnoll - Exchange server 2013 high availability and site resilience
Scott Schnoll - Exchange server 2013 high availability and site resilience
 
Exchange Server 2013 High Availability - Site Resilience
Exchange Server 2013 High Availability - Site ResilienceExchange Server 2013 High Availability - Site Resilience
Exchange Server 2013 High Availability - Site Resilience
 
Filesystem Comparison: NFS vs GFS2 vs OCFS2
Filesystem Comparison: NFS vs GFS2 vs OCFS2Filesystem Comparison: NFS vs GFS2 vs OCFS2
Filesystem Comparison: NFS vs GFS2 vs OCFS2
 
Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...
Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...
Performance bottlenecks for metadata workload in Gluster with Poornima Gurusi...
 
Postgres clusters
Postgres clustersPostgres clusters
Postgres clusters
 
Voldemort on Solid State Drives
Voldemort on Solid State DrivesVoldemort on Solid State Drives
Voldemort on Solid State Drives
 
[B4]deview 2012-hdfs
[B4]deview 2012-hdfs[B4]deview 2012-hdfs
[B4]deview 2012-hdfs
 
Migrating to XtraDB Cluster
Migrating to XtraDB ClusterMigrating to XtraDB Cluster
Migrating to XtraDB Cluster
 
Coordinating Metadata Replication: Survival Strategy for Distributed Systems
Coordinating Metadata Replication: Survival Strategy for Distributed SystemsCoordinating Metadata Replication: Survival Strategy for Distributed Systems
Coordinating Metadata Replication: Survival Strategy for Distributed Systems
 

Andere mochten auch

Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Ontico
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Ontico
 
Puppet под нагрузкой.(Антон Турецкий)
Puppet под нагрузкой.(Антон Турецкий)Puppet под нагрузкой.(Антон Турецкий)
Puppet под нагрузкой.(Антон Турецкий)Ontico
 
Joe Damato
Joe DamatoJoe Damato
Joe DamatoOntico
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Ontico
 
Андрей Лескин, QratorLabs/HLL
Андрей Лескин, QratorLabs/HLLАндрей Лескин, QratorLabs/HLL
Андрей Лескин, QratorLabs/HLLOntico
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Ontico
 
Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)
Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)
Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)Ontico
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Ontico
 

Andere mochten auch (9)

Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
Плагины MariaDB и MySQL - а мне-то что? (Сергей Голубчик)
 
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
Высоконагруженные трейдинговые системы и их тестирование (Иосиф Иткин)
 
Puppet под нагрузкой.(Антон Турецкий)
Puppet под нагрузкой.(Антон Турецкий)Puppet под нагрузкой.(Антон Турецкий)
Puppet под нагрузкой.(Антон Турецкий)
 
Joe Damato
Joe DamatoJoe Damato
Joe Damato
 
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
Цикл разработки и внедрения функционала в Мамбе (Михаил Буйлов)
 
Андрей Лескин, QratorLabs/HLL
Андрей Лескин, QratorLabs/HLLАндрей Лескин, QratorLabs/HLL
Андрей Лескин, QratorLabs/HLL
 
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
Проектирование высоконагруженного масштабируемого веб-сервиса в облаке на при...
 
Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)
Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)
Как найти DDoS-ера и заставить извиниться, Дмитрий Волков (Group-IB)
 
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
Разработка высокопроизводительных серверных приложений для Linux/Unix (Алекса...
 

Ähnlich wie Cистема распределенного, масштабируемого и высоконадежного хранения данных для виртуальных машин (Кирилл Коротаев)

Memory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and VirtualizationMemory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and VirtualizationBigstep
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaGuozhang Wang
 
M6d cassandrapresentation
M6d cassandrapresentationM6d cassandrapresentation
M6d cassandrapresentationEdward Capriolo
 
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...ScyllaDB
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...smallerror
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...xlight
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitterRoger Xia
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInLinkedIn
 
Hadoop 3.0 - Revolution or evolution?
Hadoop 3.0 - Revolution or evolution?Hadoop 3.0 - Revolution or evolution?
Hadoop 3.0 - Revolution or evolution?Uwe Printz
 
Buytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerBuytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerkuchinskaya
 
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsAMD Developer Central
 
Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012StampedeCon
 
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?Clustrix
 
How is Kafka so Fast?
How is Kafka so Fast?How is Kafka so Fast?
How is Kafka so Fast?Ricardo Paiva
 
CPU Caches - Jamie Allen
CPU Caches - Jamie AllenCPU Caches - Jamie Allen
CPU Caches - Jamie Allenjaxconf
 

Ähnlich wie Cистема распределенного, масштабируемого и высоконадежного хранения данных для виртуальных машин (Кирилл Коротаев) (20)

Memory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and VirtualizationMemory, Big Data, NoSQL and Virtualization
Memory, Big Data, NoSQL and Virtualization
 
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache KafkaBuilding Stream Infrastructure across Multiple Data Centers with Apache Kafka
Building Stream Infrastructure across Multiple Data Centers with Apache Kafka
 
M6d cassandrapresentation
M6d cassandrapresentationM6d cassandrapresentation
M6d cassandrapresentation
 
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
Scylla Summit 2016: Outbrain Case Study - Lowering Latency While Doing 20X IO...
 
CLFS 2010
CLFS 2010CLFS 2010
CLFS 2010
 
CPU Caches
CPU CachesCPU Caches
CPU Caches
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...Fixing Twitter  Improving The Performance And Scalability Of The Worlds Most ...
Fixing Twitter Improving The Performance And Scalability Of The Worlds Most ...
 
Fixing twitter
Fixing twitterFixing twitter
Fixing twitter
 
Fixing_Twitter
Fixing_TwitterFixing_Twitter
Fixing_Twitter
 
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedInJay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
Jay Kreps on Project Voldemort Scaling Simple Storage At LinkedIn
 
Hadoop 3.0 - Revolution or evolution?
Hadoop 3.0 - Revolution or evolution?Hadoop 3.0 - Revolution or evolution?
Hadoop 3.0 - Revolution or evolution?
 
Buytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemakerBuytaert kris my_sql-pacemaker
Buytaert kris my_sql-pacemaker
 
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIsDX12 & Vulkan: Dawn of a New Generation of Graphics APIs
DX12 & Vulkan: Dawn of a New Generation of Graphics APIs
 
EVCache & Moneta (GoSF)
EVCache & Moneta (GoSF)EVCache & Moneta (GoSF)
EVCache & Moneta (GoSF)
 
Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012Facebook's HBase Backups - StampedeCon 2012
Facebook's HBase Backups - StampedeCon 2012
 
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
Tech Talk Series, Part 2: Why is sharding not smart to do in MySQL?
 
How is Kafka so Fast?
How is Kafka so Fast?How is Kafka so Fast?
How is Kafka so Fast?
 
CPU Caches - Jamie Allen
CPU Caches - Jamie AllenCPU Caches - Jamie Allen
CPU Caches - Jamie Allen
 
Cpu Caches
Cpu CachesCpu Caches
Cpu Caches
 

Mehr von Ontico

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...Ontico
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Ontico
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Ontico
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Ontico
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Ontico
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)Ontico
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Ontico
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Ontico
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)Ontico
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)Ontico
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Ontico
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Ontico
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Ontico
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Ontico
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)Ontico
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Ontico
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Ontico
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...Ontico
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Ontico
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Ontico
 

Mehr von Ontico (20)

One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
One-cloud — система управления дата-центром в Одноклассниках / Олег Анастасье...
 
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)Масштабируя DNS / Артем Гавриченков (Qrator Labs)
Масштабируя DNS / Артем Гавриченков (Qrator Labs)
 
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
Создание BigData-платформы для ФГУП Почта России / Андрей Бащенко (Luxoft)
 
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
Готовим тестовое окружение, или сколько тестовых инстансов вам нужно / Алекса...
 
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
Новые технологии репликации данных в PostgreSQL / Александр Алексеев (Postgre...
 
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
PostgreSQL Configuration for Humans / Alvaro Hernandez (OnGres)
 
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
Inexpensive Datamasking for MySQL with ProxySQL — Data Anonymization for Deve...
 
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
Опыт разработки модуля межсетевого экранирования для MySQL / Олег Брославский...
 
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
ProxySQL Use Case Scenarios / Alkin Tezuysal (Percona)
 
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)MySQL Replication — Advanced Features / Петр Зайцев (Percona)
MySQL Replication — Advanced Features / Петр Зайцев (Percona)
 
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
Внутренний open-source. Как разрабатывать мобильное приложение большим количе...
 
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
Подробно о том, как Causal Consistency реализовано в MongoDB / Михаил Тюленев...
 
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
Балансировка на скорости проводов. Без ASIC, без ограничений. Решения NFWare ...
 
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
Перехват трафика — мифы и реальность / Евгений Усков (Qrator Labs)
 
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
И тогда наверняка вдруг запляшут облака! / Алексей Сушков (ПЕТЕР-СЕРВИС)
 
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
Как мы заставили Druid работать в Одноклассниках / Юрий Невиницин (OK.RU)
 
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
Разгоняем ASP.NET Core / Илья Вербицкий (WebStoating s.r.o.)
 
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...100500 способов кэширования в Oracle Database или как достичь максимальной ск...
100500 способов кэширования в Oracle Database или как достичь максимальной ск...
 
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
Apache Ignite Persistence: зачем Persistence для In-Memory, и как он работает...
 
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
Механизмы мониторинга баз данных: взгляд изнутри / Дмитрий Еманов (Firebird P...
 

Cистема распределенного, масштабируемого и высоконадежного хранения данных для виртуальных машин (Кирилл Коротаев)

  • 1. Система распределенного, масштабируемого и высоконадежного хранения данных для виртуальных машин (и не только) HighLoad++, 22-23 октября 2012 Kirill Korotaev VP of Advanced Research, Parallels
  • 3. Virtualization & needs 1. VM migration 2. HA on failures 3
  • 4. SAN storage Redundancy High availability Monitoring Self healing Reliability Fiber channel Performance 4
  • 5. SAN local How to get best of 2 worlds? 100$ 100,000$ 5
  • 6. Idea of maximum simplification Focus on needed capabilities is a key to success
  • 7. From required capability to consistency Consistency - “some well defined and understandable order” of operations. Required for real file systems (NTFS, etx3/4,…) cause they use and rely on these properties of real disks. A B A B Journal Metadata • Immediate/Strict consistency • Sequential consistency (all observers see the same order) • Eventual consistency (no time guarantees, most object storages) • Weak consistency (only synchronization primitives define order) 7
  • 8. We want grow on demand also… • Grow on demand means ability to allocate more then locally available (>HDD or no free space) • Requires split of data into pieces • Probability(any of N computer failure) is increasing with N  • So redundancy/replication and auto recovery is a MUST • But recovery can be done in parallel (~1TB in 10mins) • Good news is that MTTF ~1/T2, where T is recovery time. • So let’s split all objects to chunks (64Mb) • Replicate chunks, not objects • Spread chunks over the cluster to reduce recovery T • Need to take into account topology of cluster  8
  • 9. More ideas Simplifications: • No need for POSIX FS • Optimize for big objects only • Can assume infrequent/slow metadata updates Major assumption: • Shit happens: servers die, even DC can crash 9
  • 10. Why consistency is not easy? Replication… Simplest case: object is fully stored on a single node Object Next step: object is replicated, i.e. multiple instances present t Server1 v1 v2 Server2 v1 v2 DC crash Server3 v1 v1 Stale data can be read! 10
  • 11. Why consistency is not easy? Data striping… Splitting data into chunks leads to similar issues as replication: File = c1v1 c2v1 t write write Server1 c1v1 Server2 c1v1 c1v2 DC crash Server3 c1v1 c1v2 actual state is Server4 c2v1 c1v2+c2v2, Server5 c2v1 c2v2 but all combinations Server6 c2v1 c2v2 civj can be found Note: c1v1 or/and c2v1 should never be read! 11
  • 12. So why consistency is not easy? Data versioning is crucial and should be attributed to data, plus heavily checked on operations! Problems with versions: 1. Tracking versions requires transactions support and sync operations. SLOW!  2. Can’t store versions near data only! Node can not decide alone whether it’s uptodate or not. Solution: 1. Let’s update version only when some server can’t complete write! And leave it constant on successful data modifications. 2. To solve #2 let’s store versions on metadata servers (MDS) – authority which tracks full cluster state. It should be reliable and HA. 12
  • 14. Overall design Meta Data Server (MDS) • Metadata database • Chunks and versions tracker • HA … Clients MDS Chunk Server (CS) Ethernet • Stores data (chunks) • Chunk management • READ/WRITE CS CS CS CS CS CS … CS 14
  • 15. Magic (MetaData) Server HA • Single point of failure => need HA… • Ouch, but we don’t want replicated DB, MySQL or Oracle… It’s a nightmare to manage. Not scalable. • Database adds noticeable latency per chunk access We have to create our own replicated DB for MDS 15
  • 16. Meta Data Server database Ideas from GoogleFS: • ~128 byte per chunk • 64Mb RAM describe ~32 Terabytes Full state in memory chunks Commit deltas • Journal stores modification records • It’s growing, so need compacting Local method Local journal • To compact in background, need journal memory snapshotting • Journal and state can be synced to outdated nodes 16
  • 17. Meta Data Server database compacting Full state in memory Snap- Snap- shot shot Local journal New New journal journal 17
  • 18. PAXOS algorithm The Part-Time Parliament, Leslie Lamport: • The Island of Paxos, parliament government • Legislators are traders, travel a lot and often not present in chamber • They used non-reliable messengers for notifications and communication • Decree is adopted using ballots, need majority of votes • Legislators are each having it’s own journal of records • Consistency of decrees is required • Add/removal of legislators is needed • Progress is needed 18
  • 20. Chunk server performance tricks Write requests are split (64k) and chained: Chained write CS CS CS Write 256Kb req Completion t 64k 1 server, 256K write 3 servers, 256K split/chained write 3 servers, dumb 20
  • 21. SSD caching on clients • SSD bursts performance > 10x times • Caching on 2nd read access only to avoid excessive caching • Detect sequential access and avoid caching {fileID, offset} 8-way hash generation and LRU blockid … accesstime • 3 parts: filter (RAM), cache, boot cache (1/8, 100MB / 2min) • Sequential access detection relies on access time • Write simply invalidates cached blocks • Avoid interlaced reads: remote block, cached, remote, cached • Writes (caching) affect reads performance (user I/O) 21
  • 22. SSD journaling at CS • Bursts write performance, async commit to rotational drives • Allows to implement data check summing and scrubbing • Reason: major difference from object storages – performance and latency are very noticeable and important. Latency is not hidden by WAN. 22
  • 24. Final result Storage system: • With file system interface, scalable to Petabytes • Suitable for running VMs and Containers, Object Storage, shared hosting and other needs • SAN like performance over ethernet networks: • 13K IOPS on 14 machines cluster (4 SATA HDD each) • 600K IOPS with SSD caching • 1TB drive recovery takes 10 minutes! 24
  • 25. Some experience to share • Asynchronous non-blocking design • QA: unit tests and stress testing are the must • QA: how to emulate power off? SIGSTOP+SIGCONT/KILL. • It hangs connections and avoids RESETs as if host disappeared • Drives/RAIDs/SSDs lie about FLUSHes. • SSD write performance depends on data. Beware compression inside. • Checksum everything (4GB/sec) and validate HW memtest86 25
  • 26. Some experience to share • All queues should be limited and controlled, like in TCP congestion control is required (both for memory limit and latency control, i.e. IO queue length) • One client can fire Nx4K random requests and effectively it’s equivalent to 1MB requests. Congestion should be calculated correctly (taking into accoung quality of queue). • In addition to queues limit FDs/connections etc. • Linux sync() / syncfs() is not usable • Linux fdatasync() is 3.5-4x faster then fsync(), but should not be used when file size changed. • Replication should be done by pairs 26
  • 27. Some experience to share • Cluster identity: unique ID and name • Cluster resolving: DNS, manual and zeroconf • Interesting OSDI’12 Microsoft Research storage: uniform network topology, 2GB/sec per client, sorting world record 1.4TB in ~60sec. 27
  • 28. Object storage Image: ext4 filesystem Object Object Object 28
  • 29. Object storage Image: ext4 filesystem Object Object Object 29
  • 30. Object storage Image: ext4 filesystem Object O O Image: ext4 filesystem Image: ext4 filesystem Object O O Object O O Image: ext4 filesystem Object O O Image: ext4 filesystem Object O O Image: ext4 filesystem Object O O 30
  • 31. Thank You Kirill Korotaev dev@parallels.com Try Parallels Cloud Server 6.0 beta2 at http://www.parallels.com/product/pcs 31
  • 32. Parallels - лидер на международном рынке в своих сегментах • Автоматизация оказания • Виртуализация ПК и Mac облачных сервисов • 3 млн. ПК во всем мире • 10 млн. СМБ в 125 странах • 81% рынка в розничных сетях США Работа в Parallels - от программирования в ядрах ОС до создания web интерфейсов и мобильных приложений • Интересные проекты • Процесс разработки мирового класса • Работа бок о бок с легендами ИТ- • Карьера, опционы индустрии Присоединяйся к лучшим! Job@parallels.com • 32

Hinweis der Redaktion

  1. Let’s start from prehistory about how our logic and vision evolved and why idea was developed this way historically…
  2. Slide beginning: it was about single computer and single disk. The whole story below is about disks and storage.What local storage means?Can’t grow on demand (more then locally available)Can’t quickly migrate dataCan’t access data from different nodesSingle point of failureManual HW support
  3. This approach changes a lot! Automation, scalability
  4. Cheap/slow vs. manageability/fast/reliable/scalable
  5. Mention object storages…Tell about FLUSH/BARRIER, it’s not present on this pic
  6. - S3 and scality have only put/get operations since they write version with data and do fsync. After that new object version is discoverable/accessible and old one can be removed.GoogleFS does similar version increment on close. i.e. on crash inconsistent state may be detected.NOTE: in reality version must be updated when client issues SYNC only (not after every write). But it is still slow to do it this way.
  7. Sounds like авантюра векаBut think about requirements: low read latency, full state replication